如何使用元素将我的字符串解析为XML?

时间:2014-02-18 06:23:03

标签: c# xml-parsing linq-to-xml

我有字符串 s ,它看起来像是:

<root><p>hello world</p>&nbsp;my name is!</root>

我有下一个代码:

try
{
    m_Content = XDocument.Load(new StringReader(s));
}
catch (XmlException ex)
{
    ex.Data["myerror"] = s;

    throw;
}

如您所见,我想加载包含&nbsp;等所有元素的字符串并进行查看。但是我有XmlException:

  

将未声明的替换引用到“nbsp”

任何想法如何正确做到?

ChrisShao提出了一个好主意:将我的字符串放在<![CDATA[标记中,但遗憾的是它并没有解决我的问题。我有一个包含大量标签的大字符串和几个大文本,我可以在其中遇到&nbsp;个元素。如果使用System.Web.HttpUtility.HtmlDecode,我会丢失所有这些元素并获取“”字段。

3 个答案:

答案 0 :(得分:3)

回复已添加部分。您获得的空白(" ")字段在呈现时是&nbsp;的正确表示。正确编码&nbsp;以便在xml中使用&#160; [Reference]。

如果您希望在字符串加载到&nbsp;时看到" "而不是XDocument,请尝试使用&编码&符号&amp;} 。将&nbsp;替换为&amp;nbsp; [Reference]。

答案 1 :(得分:0)

我认为你应该将你的字符串放入CDATA块,如下所示:

<root><![CDATA[<p>hello world</p>&nbsp;my name is!]]></root>

答案 2 :(得分:0)

使用System.Web.HttpUtility.HtmlDecode或System.Net.WebUtility.HtmlDecode