这个XML有效吗?

时间:2015-03-21 08:39:14

标签: xml

我必须编写一个脚本来将数据传输到Web服务器,服务器以XML格式接收数据并以XML格式发回响应。在一个特殊情况下,它会将XML发回给我:

<operation name="ADD_REQUEST">
  <result>
    <status>Failed</status>
    <message>Error when performing - ADD_REQUEST - The element type "Details" must be terminated by the matching end-tag "</Details>".</message>
  </result>
</operation>

由于以下原因,我正在使用MSXML.DOMDocument来解析它:

"</Details>"

嵌入在邮件中。如果我手动将其编辑为

"&lt;/Details&gt;"

XML解析得很好。

我的问题是MS解析器是否过于挑剔或者服务器是否发回了无效的,即不正确编码的XML?如果是后者,我会嘲笑那些维护服务器的人(这不是我对自己有任何控制权的东西)。

1 个答案:

答案 0 :(得分:2)

这不是返回的有效XML。 spec清楚地说:

  

&符号(&amp;)和左尖括号(&lt;)不得   以字面形式出现,除非用作标记分隔符,   或在评论,处理指令或CDATA部分内。如果   它们在别处需要,必须使用数字进行转义   字符引用或字符串“&amp;”和“&lt;”   分别。可以使用以下来表示右尖括号(&gt;)   字符串“&gt;”,为了兼容性,必须使用其中任何一个进行转义   “&gt;”或字符串参考出现在字符串“]]&gt;中   “在内容中,当该字符串未标记CDATA的结尾时   部分。