有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我怎样才能使我的xml安全地进行解析(当它包含&字符时)?

我得到了一个xml字符串,我需要将其放入解析器。它目前正在抱怨一个非法的xml字符。非常简单的例子:

<someXml>this & that</someXml>

我知道解决方案是用&amp;替换&,但我没有生成XML,因此无法控制值

简单的字符串替换并不是解决这个问题的正确方法,因为“&;”在XML中具有特殊意义,是“&;”的全局替换用“&;amp;'会破坏原本的特殊意义。有没有一种解决方案可以获取完整的xml文档并“修复”它,以便“&;”成为&;amp;',但只在你想要的地方?我可以安全地替换“&;”吗与‘&;amp;'(注意两边的空格)


共 (2) 个答案

  1. # 1 楼答案

    我认为这是一个有趣的问题,因为现实生活中可能真的会发生这种情况。虽然我认为正确的做法是要求XML提供者修复XML并使其有效,但我认为一种选择是尝试使用一个宽松的解析器。我做了一些搜索,发现这个blog post谈论的是同一个问题,并提出了我想到的同一个解决方案。你可以试试jsoup。让我重复一次,我认为这不是最好的做法:您真的应该让XML提供商来修复它

  2. # 2 楼答案

    为什么不在任何包含额外XML内容的XML标记中使用CDATA部分?那么单独的符号就不成问题了