嘿,伙计们,我有一个需要解析的XML文件,但只针对文本,而不是HTML。下面是一个节点的示例:
<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy & elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift! </li></ul> ]]></highlights> 正如您所看到的,CDATA中包含HTML码,所以当我执行element.Value操作时,我也会得到标记。有没有什么简单的方法可以只获取文本?
谢谢!
发布于 2011-03-20 06:16:01
由于CDATA中的数据不是有效的XML,因此可以使用HtmlAgilityPack来解析结果:
XDocument xdoc = XDocument.Load("test.xml");
var html = xdoc.Descendants("highlights").First().Value;
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(html);
var result = htmlDoc.DocumentNode.InnerText;输出:
来自各种stylesStable和reliableMakes的经典优雅的手提包hooksChoose是一件很棒的礼物!
发布于 2011-03-20 06:36:43
<literal id="continer" runat="server"/>
continer.text=@"<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy & elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift! </li></ul> ]]></highlights> ";或
<div id="continer" runat="server"/>
continer.innerHtml==@"<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy & elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift! </li></ul> ]]></highlights> ";https://stackoverflow.com/questions/5365213
复制相似问题