简体   繁体   English

从XElement获取innerText

[英]Get innerText from XElement

Hey guys, I have an XML file I need to parse, but only for the text, not the HTML. 嘿伙计们,我有一个我需要解析的XML文件,但仅适用于文本,而不是HTML。 Here's an example of a node: 这是一个节点的例子:

<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy &amp; elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift!  </li></ul>  ]]></highlights> 

As you can see, the CDATA has HTML code in it, so when I do element.Value I also get the tags. 如您所见,CDATA中包含HTML代码,因此当我执行element.Value时,我也会获得标签。 Is there any simple way to get just the text? 有没有简单的方法来获取文本?

Thank you! 谢谢!

Since the data in CDATA is not valid XML, you can use HtmlAgilityPack to parse the result: 由于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;

Output: 输出:

Classy & elegant purse hooksChoose from various stylesStable and reliableMakes a great gift! 优雅优雅的钱包钩从各种风格中选择稳定可靠的礼品!

<literal id="continer"  runat="server"/>

continer.text=@"<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy &amp; elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift!  </li></ul>  ]]></highlights> ";

or 要么

<div id="continer" runat="server"/>

continer.innerHtml==@"<highlights><![CDATA[<ul style="color:#000000;font-size:small;font-family:verdana,geneva,sans-serif"><li>Classy &amp; elegant purse hooks</li><li>Choose from various styles<br></li><li>Stable and reliable</li><li>Makes a great gift!  </li></ul>  ]]></highlights> ";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM