我有一个场景,我从另一个服务获取XML并解析此文件并将其呈现给另一个文件。
但是,有时候,我们会在任何标记内的输入文件中获得&
,当我们尝试解析此文件时,我们会得到SAXException
。
我们是否可以动态替换&
,或者我们可以在解析时忽略&
符号?
答案 0 :(得分:1)
在做了一些研究之后,我提出了以下几点:
SAX Parser需要一个干净的XML文件,没有任何错误,否则它将失败,我们无法在输入中动态更改字符。因此,我们需要事先检查输入XML文件。
要轻松更改输入文件中的字符" StringEscapeUtils.escapeXml"由Apache提供的" org.apache.commons.lang.StringEscapeUtils"包。但是,这有其缺点,因为它将出现角色的所有出现。作为参考,您可以查看此博客:" http://javarevisited.blogspot.com/2012/09/how-to-replace-escape-xml-special-characters-java-string.html"
但是,我的用例场景不同,我只需要从输入文件中删除特定字符。所以,为此我必须从头开始编码;我必须读取文件并检查所需的字符以删除并删除它并再次写回文件。