【发布时间】:2012-01-03 14:52:36
【问题描述】:
我正在使用 SAX (javax.xml.parsers.SAXParser;) 读取 XML。在该 XML 中,子节点值中有一些特殊字符,如 (&,,",')。因此,到目前为止,SAX 已成功读取 XML,但此时它会抛出 org.xml.sax.SAXParseException。
例如,在下面的示例 XML 中,SAX 最多读取成功的节点值。但它会抛出这个org.xml.sax.SAXParseException,因为 Name 参数的值有 。
<Parent>
<child1>
LS-23541723
</child1>
<child2 id="2" Name="T-Shirt And Denim - T<D" Rate="500.00">
</child2>
<child3>
<![CDATA[This is the child 2]]>
</child3>
<child4>
<![CDATA[This is the child 4]]>
</child4>
</Parent>
我无法事先确定包含这些特殊字符的节点。(它是动态的。)所以,我想做的是,用 SAX 读取 XML,忽略包含这些特殊字符的节点。简单,如果可以使用 SAX 读取 XML,我想我可以这样做,跳过传递 org.xml.sax.SAXParseException 的节点。
这可能吗?如果可以,怎么做?
注意:我不能简单地将它们替换为 &amp; 之类的实体引用,因为有时 XML 节点也会与 &lt; 、&gt; 一起使用(以 &lt;child1&gt; 的形式出现)。因此,在开始使用 SAX 阅读之前,我将所有实体引用替换为字符引用。(replaceAll("&gt;",">") 等)
【问题讨论】:
标签: java exception-handling xml-parsing sax