0

我有这样的xml

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

当我将其转换为 xElement

var xe = XElement.Parse(xml);

我收到错误

如果 xml 内容 & 所以我得到这个错误 «An error occurred while parsing EntityName»

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

4

2 回答 2

7

我有这样的xml

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

您不能使用 XElement 解析无效的 XML。为了使用 XML 解析器,例如 XElement 或 XDocument,您首先需要有一个有效的 XML:

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

因此,请继续通知该字符串的作者,他需要修复它才能获得可以解析的有效 XML。

于 2012-05-10T09:43:19.957 回答
1

那是因为那个 XML 是无效的,而生成它的人是有责任的。你应该和他们谈谈修复它,因为如果那是不可能的,你会承受很大的痛苦。

具体来说,字符&,<>(以及属性中的"or ')应该是对应的XML 实体

<root>
    <text>My test is 5 &gt; 2 &amp; 10 &lt; 12</text>
</root>
于 2012-05-10T09:43:34.650 回答