我遇到了一个令人难以置信的奇怪问题:
我正在使用的libxml解析器区别于“和”。
有吗?以下属性产生错误:
name =“New Headway_the third edition”
如果我用“我的键盘输入”替换“字符”,一切正常......我已经证明,彼此旁边不只有两个'字符......解析器返回以下错误:
:72: parser error : invalid character in attribute value
<TopCont id="1197" name="New Headway_the thir...
^
真正奇怪的是,这个属性来自一个网络服务,它能够很好地运行到他的TopCont ......人物以非常正常的方式运行!
感谢您的帮助, 马库斯
答案 0 :(得分:2)
第一个是“ - ascii代码34 - 这是在XML文件中使用的有效双引号。
另一个是某种花哨的开放双引号(或接近双引号,我无法说清楚)。从XML解析器的角度来看,它看起来与代码34的字符非常相似。
解析器只接受“(34)作为引用。你不能使用任何其他角色并期望它起作用 - 就像随意使用任何其他角色并期望它有意义一样:
<TopCont id="1197" name=¢New Headway_the thir...
你感到困惑的唯一原因是因为“和”看起来与人类相同;解析器只关心它的字符代码:)
NB很奇怪,一个Web服务将返回两种类型的引用 - 这告诉我有人可能从其他地方剪切并粘贴,即Word?什么是网络服务?