c++ - 使用 expat 解析 & 符号失败。 token 无效?

标签 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>

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

有什么建议吗?与号是这里的问题。

最佳答案

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

关于c++ - 使用 expat 解析 & 符号失败。 token 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6864093/

相关文章:

GSL ODE 求解器的 C++ 类成员函数

c# - 如何在 C# 中将 JSON 数组(作为字符串)解析为 Dictionary<string,string>?

objective-c - 这个 ParseKit BNF 有什么问题?

python - 'and' (boolean) vs '&' (bitwise) - 为什么列表与 numpy 数组的行为不同?

css - SimpLESS 中的嵌套符号

c++ - 我不能在我自己的头文件中包含 boost 头文件

c++ - 如何让编译器在赋值时计算出模板类参数?

c++ - 为什么在动态分配中关键术语new之前使用(unsigned char *)

java - SimpleDateFormat 解析时间异常

html - RegEx 拒绝未转义的 HTML 字符