-1

我正在尝试使用 DOM 或 SAX 解析 java 中的 xml 文件。

问题是在解析时,如果我的 xml 包含像特殊字符一样的属性值< > ",那么解析器会抛出ParserException

例如 xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<abc>
     <check name="bike" value="apache<is good model">
     <check name="car" value="tata "sumo">
</abc>

在这个例子中,xml 元素<check>有一个属性值,它包含<or "

解析器将其视为无效并引发解析器异常。

现在我的问题是在将 xml 文件解析为解析器之前,检测 xml 文件属性值中的特殊字符并且必须用符号替换。

例如:

如果 xml 包含<

<check name="bike" value="apache<is good model">

替换为空格

<check name="bike" value="apache is good model">

请给我建议。可以通过什么方法完成...我们可以使用 XSD 来完成...提前谢谢。

4

2 回答 2

0

<并且>是 XML 中的预定义实体,不能作为属性或值的一部分被接受。有关有效 XML 和 HTML 字符列表的参考,请查看wiki页面

如果您希望<用作 XML 值,请改用CDATA标记

<element  attr="elemAttr">
<value>
<![CDATA[< allowed here]]>
</value>
</element>
于 2012-09-22T07:29:37.910 回答
0

如果您可以控制输入,请将有问题的<字符替换&amp;lt;为解析器应该接受的字符。

如果您无法控制输入,请弄清楚如何捕获异常。

于 2012-09-22T18:31:39.383 回答