2

我通过 XML API 接收数据,它返回如下节点:

<?xml version='1.0' encoding='utf-8' ?>

<location>
  <name>&Oslash;L Shop</name>
</location>

我无法控制响应,但我正在尝试将其加载到 XDocument 中,但由于无效字符而失败。

我能做些什么来正确加载这个负载吗?我想使解决方案尽可能通用,因为可能存在其他无效字符。

想法?

4

3 回答 3

1

您可以使用更能容忍无效输入的 html 解析器。例如; (使用HtmlAgilityPack)此代码可以正常工作。

var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xml);
var name = doc.DocumentNode.Descendants("name").First().InnerText;
于 2013-04-22T14:06:16.390 回答
1

您不能在 XDocument.Parse 输入文本中使用“ & ”符号。将其替换为“ & ;” , 像这样

<?xml version='1.0' encoding='utf-8' ?>

<location>
  <name>&amp;Oslash;L Shop</name>
</location>
于 2013-04-22T14:09:46.427 回答
0

为什么不在将响应加载XDocument. 您可以为此使用正则表达式,应该相对简单。

请参阅C# 中的转义无效 XML 字符

于 2013-04-22T14:05:52.170 回答