如何使用&,<,>解析XElement符号?

时间:2012-05-10 09:41:55

标签: c# xml xml-parsing xelement

我有像这样的xml

<root>
    <text>My test is 5 > 2 & 10 < 12</text>
</root>

当我将其转换为xElement

var xe = XElement.Parse(xml);

我收到错误

如果xml内容&amp;所以我收到此错误«解析EntityName时发生错误»

如果xml内容&gt;所以我收到此错误«名称不能以'&lt;'开头字符,十六进制值0x3C。»

2 个答案:

答案 0 :(得分:7)

  

我有像这样的xml

不,那不是XML。这是一些随机的字符串。

您无法使用XElement解析无效的XML。要使用XML解析器(如XElement或XDocument),首先需要有一个有效的XML:

<root>
    <text>My test is 5 &gt; 2 &amp; 10 &lt; 12</text>
</root>

所以请继续告知作者这个字符串,他需要修复它以获得可以解析的有效XML。

答案 1 :(得分:1)

那是因为XML无效,无论谁生成它都是负责任的。你应该和他们讨论如何修复它,因为如果那是不可能的,那么你就会感受到很多痛苦。

具体而言,字符&<>(以及属性中的"')应该是相应的{{3 }}:

<root>
    <text>My test is 5 &gt; 2 &amp; 10 &lt; 12</text>
</root>