使用 expat 解析 & 符号失败。令牌无效?
仅解析特定字符时出现 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äse</h1>
我很困惑为什么 & 符号在这里可能是无效标记,因为它甚至在 &
这样的 HTML 实体中使用 用 &
或自定义间隔符替换 & 符号也不起作用。
有什么建议吗? & 符号是这里的问题。
I get an expat error when parsing specific characters only. Other HTML code is parsed just fine.
I'm using the UTF-8 library of expat libexpatMT.lib and I'm working with char and std::string in a wrapper. No wide chars etc. used.
// 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äse</h1>
I'm confused why the ampersand can be an invalid token here, since it's used even within HTML entities like &
Replacing the ampersands with &
or custom spacers doesn't work either.
Any suggestions? The ampersand is the issue here.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 XML 中,您可以转义 & 符号,即使在实体中也是如此。因此有效值为
Link
正确的网页可以做到这一点。不过,浏览器对您所犯的错误相当宽容。
In XML, you escape ampersand, even in entities. So the valid value is
<a href="http://www.myurl.com?a=b&c=d">Link</a>
Correct Web pages do that. Browsers are quite tolerant for the error you made, though.