在java中禁用XML DOM解析器的自动解码

时间:2016-06-12 00:14:39

标签: java xml dom

这是我的计划:

public class XMLTest {

static String XMLdata="<Section DisplayLocation=\"Middle\" TargetLocation=\"ufdLocation0\" TemplateFileName=\"formaol\" TemplateID=\"formaol\" TemplateName=\"Form AOL\" UFDID=\"2a3935c7-105d-470e-b8ab-ad90c8f44880\"><Inputs BusinessNamePP=\"&lt;&gt;&lt;&gt;\" Caption=\"\" Description=\"A line must be active on your account for at least 30 days before it can be transferred to a new account.You have &lt;?ufd 'Test'?&gt; days remaining before you can transfer.\" Image1=\"\" Image2=\"\" ImageLabel1=\"\" ImageLabel2=\"\" emailPP=\"&lt;Anji&gt;\" firstNamePP=\"&lt;Jeera&gt;\" lastNamePP=\"&lt;Hellow&gt;\"/></Section>";

    public static void main(String args[]){
        Document doc = null;
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = null;
            db = dbf.newDocumentBuilder();
            doc = db.parse(new InputSource(new StringReader(XMLdata)));
            if (doc != null) {
                NodeList nodeList = doc.getElementsByTagName("Inputs");
                for(int x=0,size= nodeList.getLength(); x<size; x++) {
                    System.out.println(nodeList.item(x).getAttributes().getNamedItem("Description").getNodeValue());
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }   
    }
}

当我运行这个时,我得到输出

 A line must be active on your account for at least 30 days before it can be transferred to
 a new account.You have <?ufd 'Test'?> days remaining before you can transfer.

但是我不希望dom解析器自动发生这种解码, 如何防止这种解码发生?

预期产出:

A line must be active on your account for at least 30 days before it can be transferred to
a new account.You have &lt;?ufd 'Test'?&gt; days remaining before you can transfer.

与XML中的内容完全相同,但没有进行明确的转换。

0 个答案:

没有答案