名称不能以''字符,十六进制值0x20开头

时间:2017-05-23 07:36:25

标签: c# xml

我已经为此做了很多答案但是无法解决这个问题。

我在字符串中获取xml。它由“< 6”组成,作为某些节点值的内容。

结果我得到了一个例外

  

名称不能以''字符,十六进制值0x20开头。第3270行,第54位。

以下是代码:

string patternToReplaceAnd = "&(?![a-z#]+;)";
Regex reg = new Regex(patternToReplaceAnd);
xml = reg.Replace(xml, "&");
XDocument xDoc = XDocument.Parse(xml);

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

你说你在字符串中获取XML。你不是。你在垃圾串中得到垃圾。

如果垃圾对您非常重要,那么您可以尝试将其转换为XML。你如何做到这一点取决于它有多糟糕,我们无法真正判断。

好多了:拒绝接受伪劣商品。返回供应商并告诉他们生成真正的XML。

答案 1 :(得分:0)

我确实意识到这个问题很老,但是今天我遇到了同样的问题,希望我的回答对将来可能会遇到此问题的人有所帮助。

问题在于包含<后跟space的内容。您将必须用&lt;替换该内容,以使它不被识别为格式错误的xml start tag

xml = xml.Replace('< ',"&lt; "); //make sure you include the space after < to avoid replacing actual tags.
XDocument xDoc = XDocument.Parse(xml);