xmlrenderer.java

来自「检查Java程序漏洞」· Java 代码 · 共 65 行

JAVA
65
字号
/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html*/package net.sourceforge.pmd.renderers;import net.sourceforge.pmd.PMD;import net.sourceforge.pmd.Report;import net.sourceforge.pmd.RuleViolation;import net.sourceforge.pmd.util.StringUtil;import java.util.Iterator;public class XMLRenderer implements Renderer {    public String render(Report report) {        StringBuffer buf = new StringBuffer("<?xml version=\"1.0\"?><pmd>" + PMD.EOL);        String filename = null;        // rule violations        for (Iterator i = report.iterator(); i.hasNext();) {            RuleViolation rv = (RuleViolation) i.next();            if (!rv.getFilename().equals(filename)) { // New File                if (filename != null) // Not first file ?                    buf.append("</file>");                filename = rv.getFilename();                buf.append("<file name=\"");                StringUtil.appendXmlEscaped(buf, filename);                buf.append("\">")                   .append(PMD.EOL);            }            buf.append("<violation line=\"")               .append(rv.getLine()) // int               .append("\" rule=\"");            StringUtil.appendXmlEscaped(buf, rv.getRule().getName());            buf.append("\">")               .append(PMD.EOL);            StringUtil.appendXmlEscaped(buf, rv.getDescription());            buf.append(PMD.EOL);            buf.append("</violation>");            buf.append(PMD.EOL);        }        if (filename != null) { // Not first file ?            buf.append("</file>");        }        // errors        for (Iterator i = report.errors(); i.hasNext();) {            Report.ProcessingError pe = (Report.ProcessingError) i.next();            buf.append("<error ")               .append("filename=\"");            StringUtil.appendXmlEscaped(buf, pe.getFile());            buf.append("\" msg=\"");            StringUtil.appendXmlEscaped(buf, pe.getMsg());            buf.append("\"/>")               .append(PMD.EOL);        }        buf.append("</pmd>");        return buf.toString();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?