错误解析'&'使用Woodstox解析器的字符

时间:2013-01-11 18:21:10

标签: java xml xml-parsing woodstox

Java:1.6
Woodstox:4.1.4

我正在尝试让Woodstox xml解析器成为我的朋友。但开始真的很难:) 我有一个小?解析像这样的xml时遇到的问题:

<teams>
    <team id="team1">Mom & Dad</team>
    <team id="team2">Son & Daughter</team>
</teams>

这很简单,但不幸的是我得到了这个例外:

Exception in thread "main" [com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ' ' (code 32) (missing name?)
 at [row,col {unknown-source}]: [2,24]

这是因为角色和...而发生的。

问题:
是否可以成功读取xml而不会出现此异常?

提前谢谢你 休伯特

1 个答案:

答案 0 :(得分:8)

&是无效字符,应该显示为&amp;转义或包含在CDATA部分中。

<teams>
    <team id="team1">Mom &amp; Dad</team>
    <team id="team2"><![CDATA[Son & Daughter]]></team>
</teams>

来自:http://www.w3.org/TR/REC-xml/#syntax

  

&符号(&amp;)和左尖括号(&lt;)不得   以字面形式出现,除非用作标记分隔符,   或在评论,处理指令或CDATA部分内。如果   它们在其他地方需要,它们必须使用数字进行转义   字符引用或字符串“&amp;”和“&lt;”   分别