首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Java的DOM XML API解析XML中的“与”符号

用Java的DOM XML API解析XML中的“与”符号
EN

Stack Overflow用户
提问于 2011-10-12 10:30:20
回答 2查看 3.4K关注 0票数 5

我正在尝试使用Java DOM API (而不是SAX)解析XML文档。每当解析器在解析文本节点时遇到与号(&),它就会出错。我猜这是可以通过1)转义,2)编码或3)使用不同的解析器来解决的。

我正在读取一个我无法控制的XML文档,因此我不能准确地确定每次读取文档时“与”号出现在文档中的哪个位置。

我看到的类似问题的答案建议在解析XML时替换实体类型,但我不确定如何才能做到这一点,因为它甚至在遇到XML与符号时都不会进行解析。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2011-10-12 10:38:04

如前所述,XML是错误的(糟糕!):在XML中出现的所有& (引入字符实体的标记除外)都必须编码为&

一些解决方案(基本上就像这篇文章中描述的那样):

  1. 修复XML (在源代码中,或在hack- it -up阶段),或者;
  2. 使用“适当的”工具(例如,一个“容错”的超文本标记语言解析器)解析它

对于"hack- it -up“方法,考虑一个单独的输入流--参见Working with Filter Streams --在实际的DOM解析器之前作为过滤器执行:每当遇到& (它不是字符实体的一部分)时,它就会通过将&插入到流中来”修复它“。当然,如果XML源代码没有得到正确的基本编码...

祝你编码愉快。

票数 4
EN

Stack Overflow用户

发布于 2011-10-12 17:30:28

“我正在读取一个我无法控制的XML文档”。

不,您正在读取非XML文档。出现错误的原因是,当您读取非XML的内容时,需要XML解析器给出错误。

XML文化是生成格式良好XML的责任在于发送者。您需要更改生成此数据的内容才能正确执行此操作。否则,您可能会忘记XML及其好处,回到私下约定的协议和自定义解析器的混乱世界。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7734636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档