我已经为此做了很多答案但是无法解决这个问题。
我在字符串中获取xml。它由“< 6”组成,作为某些节点值的内容。
结果我得到了一个例外
名称不能以''字符,十六进制值0x20开头。第3270行,第54位。
以下是代码:
string patternToReplaceAnd = "&(?![a-z#]+;)";
Regex reg = new Regex(patternToReplaceAnd);
xml = reg.Replace(xml, "&");
XDocument xDoc = XDocument.Parse(xml);
任何人都可以帮助我吗?
答案 0 :(得分:0)
你说你在字符串中获取XML。你不是。你在垃圾串中得到垃圾。
如果垃圾对您非常重要,那么您可以尝试将其转换为XML。你如何做到这一点取决于它有多糟糕,我们无法真正判断。
好多了:拒绝接受伪劣商品。返回供应商并告诉他们生成真正的XML。
答案 1 :(得分:0)
我确实意识到这个问题很老,但是今天我遇到了同样的问题,希望我的回答对将来可能会遇到此问题的人有所帮助。
问题在于包含<
后跟space
的内容。您将必须用<
替换该内容,以使它不被识别为格式错误的xml start tag
。
xml = xml.Replace('< ',"< "); //make sure you include the space after < to avoid replacing actual tags.
XDocument xDoc = XDocument.Parse(xml);