首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# XDoc解析XML字符串

C# XDoc解析XML字符串
EN

Stack Overflow用户
提问于 2013-04-22 22:00:07
回答 3查看 461关注 0票数 2

我通过一个XML API接收数据,它返回一个如下所示的节点:

代码语言:javascript
复制
<?xml version='1.0' encoding='utf-8' ?>

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

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

有什么我可以做的来正确地加载吗?我希望尽可能保持解决方案的一般性,因为可能存在其他无效字符。

有什么想法?

EN

回答 3

Stack Overflow用户

发布于 2013-04-22 22:06:16

您可以使用html解析器,它对无效输入的容忍度更高。例如;(使用HtmlAgilityPack)这段代码可以正常工作。

代码语言:javascript
复制
var doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(xml);
var name = doc.DocumentNode.Descendants("name").First().InnerText;
票数 1
EN

Stack Overflow用户

发布于 2013-04-22 22:09:46

您不能在XDocument.Parse输入文本中使用"&“符号。将其替换为"&;“,如下所示

代码语言:javascript
复制
<?xml version='1.0' encoding='utf-8' ?>

<location>
  <name>&amp;Oslash;L Shop</name>
</location>
票数 1
EN

Stack Overflow用户

发布于 2013-04-22 22:05:52

为什么不在将响应加载到XDocument之前直接转义任何无效的XML字符呢?您可以使用正则表达式来实现这一点,应该相对简单。

请参阅escape invalid XML characters in C#

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16149059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档