用expat解析&符号失败。令牌无效?

时间:2011-07-28 18:47:31

标签: c++ parsing ampersand expat-parser

仅解析特定字符时出现expat错误。其他HTML代码解析得很好。 我正在使用expat libexpatMT.lib 的UTF-8库,我正在使用包装器中的char和std :: string。没有使用宽字符等。

// The ampersand leads to: Expat error: *not well-formed (invalid token)*
<a href="http://www.myurl.com?a=b&c=d">Link</a>
<span>Tom & Jerry</span>
<h1>K&auml;se</h1>

我很困惑为什么&符号在这里可能是一个无效的令牌,因为它甚至在&amp;等HTML实体中使用 用&amp;或自定义间隔符替换&符号也不起作用。

有什么建议吗? &符是这里的问题。

1 个答案:

答案 0 :(得分:3)

在XML中,即使在实体中也可以转义&符号。因此有效值为<a href="http://www.myurl.com?a=b&amp;c=d">Link</a>
正确的网页可以做到这一点。但浏览器对你所犯的错误非常宽容。