使用Woodstox解析器解析"&"字符时出错

Hub*_*ert 4 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>
Run Code Online (Sandbox Code Playgroud)

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

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]
Run Code Online (Sandbox Code Playgroud)

这是因为角色和.

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

提前谢谢
休伯特

bdo*_*han 9

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

<teams>
    <team id="team1">Mom &amp; Dad</team>
    <team id="team2"><![CDATA[Son & Daughter]]></team>
</teams>
Run Code Online (Sandbox Code Playgroud)

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

&符号(&)和左尖括号(<)绝不能以字面形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分.如果在其他地方需要它们,它们必须分别使用数字字符引用或字符串" &amp;"和" &lt;" 进行转义.