这是一个常见的问题,但我无法找到满足我的答案。 我使用专有工具(SIMATIC IT MES系统),当我使用'<'它的xml解析工具的属性值中的符号,它会扼杀它。 根据我的理解,字符串文字中的属性值应该被视为CDATA,因此XML应该是有效的,这就是大多数在线验证器所说的。 它是否正确?解析器有问题还是我错过了什么?有没有一个解决方案不涉及用它的实体等效手动替换违规字符?我取消了XML文本以供参考:
JavaScript
违规字符在ATT7中。
感谢。
答案 0 :(得分:4)
不幸的是,你没有任何其他解决方案,但要逃避&#34;带有字符实体<
的{{1}}。
如果查看XML规范§2.4 Character data and markup,您会看到定义如下:
字符数据
[14] CharData :: = [^&lt;&amp;] * - ([^&lt;&amp;] *&#39;]]&gt;&#39; [^&lt;&amp;] *)< / p>
简而言之,这意味着<
和<
必须始终以XML格式进行转义。