【发布时间】:2018-04-26 08:15:31
【问题描述】:
假设,我们有以下 XML
<Test> <Description> "Hi" </Description> </Test>
我使用 XMLStreamReader 加载这个 XML 并使用 reader 对象进行解析。当我使用阅读器的 getText() 打印解析时遇到的字符时,我看到 &quot; 打印为“。虽然,”(双引号)首先不需要转义为 &quot; ,我想知道为什么解析器在不需要转义时会自动进行这种转换。例如,&lt;, &gt; and &amp; 被保留,否则生成的 XML 将无效。但是,&quot; and &apos; 并非如此。我必须以我收到它的方式保存描述。是否可以使用 XMLStreamReader API 做到这一点?
【问题讨论】:
-
你需要使用
XMLStreamReader来解析XML吗? -
@Alberto 是的,实际的 XML 很大,这就是我不使用 DOM 的原因
-
你是得到这个 XML 还是生成它?为防止特殊字符转义,这些数据应使用特殊的
CDATA标签 -
@Alberto 我从客户端得到这个 XML。它不是在本地生成的。
-
使用
XMLStreamReader是不可能忽略字符转义的。XMLStreamReaderImpl类。您需要搜索一个允许您指明不想转义的实现,或者使用其他方式来实现。
标签: java xmlstreamreader