【发布时间】:2013-10-30 15:06:11
【问题描述】:
我有一个包含如下属性的 XML 文档:
<Tag Body="<p>">
我想保留 Body 属性中的文本原样;但是,解析方法是将文本转换为“
”。我想保留“&”、“l”、“t”、“;”等。
我正在使用 Java SAX API 来解析 XML 文档,如下所示:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser saxParser = spf.newSAXParser();
XMLReader xmlReader = saxParser.getXMLReader();
xmlReader.setContentHandler(new MyHandler());
xmlReader.setErrorHandler(new MyErrorHandler(System.err));
xmlReader.parse(convertToFileURL(myFileName));
MyHandler.java中的相关代码为:
public void startElement(String namespaceURI, String localName, String qName, Attributes atts)
throws SAXException
{
if (qName.equals("Tag")){
String Body = atts.getValue("Body");
char []s = Body.toCharArray(); // s[0] will be "<", but I want it to be "&"
}
}
我怎样才能获得解析方法以单独保留属性文本而不尝试转换任何内容?
【问题讨论】:
-
&lt;p&gt;in xml 等于<p>在纯文本中。如果要输出 xml 编码的文本,只需 xml 编码即可,例如可以使用 StringEscapeUtils.escapeXml commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/… -
像 <是解析器被付钱去做的事情。
-
@user1516873 感谢您的提示。我已经根据它创建了一个答案。
标签: java xml encoding sax cdata