我通过一个XML API接收数据,它返回一个如下所示的节点:
<?xml version='1.0' encoding='utf-8' ?>
<location>
<name>ØL Shop</name>
</location>我无法控制响应,但我正在尝试将其加载到XDocument中,但由于无效字符而失败。
有什么我可以做的来正确地加载吗?我希望尽可能保持解决方案的一般性,因为可能存在其他无效字符。
有什么想法?
发布于 2013-04-22 22:06:16
您可以使用html解析器,它对无效输入的容忍度更高。例如;(使用HtmlAgilityPack)这段代码可以正常工作。
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xml);
var name = doc.DocumentNode.Descendants("name").First().InnerText;发布于 2013-04-22 22:09:46
您不能在XDocument.Parse输入文本中使用"&“符号。将其替换为"&;“,如下所示
<?xml version='1.0' encoding='utf-8' ?>
<location>
<name>&Oslash;L Shop</name>
</location>发布于 2013-04-22 22:05:52
为什么不在将响应加载到XDocument之前直接转义任何无效的XML字符呢?您可以使用正则表达式来实现这一点,应该相对简单。
https://stackoverflow.com/questions/16149059
复制相似问题