我正在通过XML API接收数据,它正在返回如下节点:
<?xml version='1.0' encoding='utf-8' ?>
<location>
<name>ØL Shop</name>
</location>
我无法控制响应,但我正在尝试将其加载到由于无效字符而失败的XDocument中。
我能做些什么来使这个负载正常吗?我希望尽可能保持解决方案的一般性,因为可能存在其他无效字符。
思想?
答案 0 :(得分:1)
您可以使用更能容忍无效输入的html解析器。例如; (使用HtmlAgilityPack)此代码可以正常运行。
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xml);
var name = doc.DocumentNode.Descendants("name").First().InnerText;
答案 1 :(得分:1)
您无法在XDocument.Parse输入文本中使用“&amp; ”符号。将其替换为“&amp; amp ;” ,像这样
<?xml version='1.0' encoding='utf-8' ?>
<location>
<name>&Oslash;L Shop</name>
</location>
答案 2 :(得分:0)
为什么不在将响应加载到XDocument
之前转义任何无效的XML字符?你可以使用正则表达式,应该相对简单。