4

爪哇:1.6
伍德斯托克斯: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 而不会出现此异常?

提前谢谢

4

1 回答 1

10

&是一个无效字符,应该转义为&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

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

于 2013-01-11T19:01:06.717 回答