2

我注意到 rapidxml 将非法解析<<element/>为名为 的元素<element,而不是产生错误。

我认为问题在于lookup_node_name. 评论是

//  Node name (anything but space \n \r \t / > ? \0)

我从w3.org 规范中了解到,名称可以包含字母、数字和其他一些字符。

我不确定什么是正确的解决方法。有什么建议么?

4

1 回答 1

1

从 rapidxml 代码来看,lookup_node_name是一个有效名称字符的查找表,正如评论所说,只有特定的几个是被禁止的。

我会尝试通过将 ASCII 字符 0x3C 的查找条目从 0 设置为 1 来将 '< 添加到禁止字符列表中。即,在与字符 0x30..0x3f 相关的行上,将其更改为...

      // 0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
...
         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  0,  // 3

对此:

         1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  0,  1,  0,  0,  // 3

这可能对你有用,但我还没有尝试过。我看到您已尝试通过 sourceforge 联系开发人员,这可能是最好的方法...

于 2012-06-12T21:11:08.940 回答