使用linq获取父节点的文本,子节点除外

本文关键字:子节点 文本 linq 获取 父节点 使用 | 更新日期: 2023-09-27 18:04:15

<para>Scales to meet individual data privacy requirements
<ul class="listbullet2">
<li class="listbullet2">Server counts up to 25,000</li>
<li class="listbullet2">Millions of drives</li>
<li class="listbullet2">Millions of encryption keys</li>
</ul>
</para>

电流输出:-

<para>Scales to meet individual data privacy requirements Server counts up to 25,000Millions of drivesMillions of encryption keys</para> 

要求输出:-

 <para>Scales to meet individual data privacy requirements <li>Server counts up to 25,000</li> <li>Millions of drives</li> <li>Millions of encryption keys</li> </para>

我们需要得到文本"尺度,以满足个人数据隐私要求"目前它给我完整的内容。有人能说出这个的代码吗?

使用linq获取父节点的文本,子节点除外

虽然您的示例看起来像html,但这里有一个使用Linq2Xml的解决方案

var xDoc = XDocument.Parse(xmlstring);
xDoc.Root.Elements().Remove();
var txt = xDoc.Root.Value; //=>Scales to meet individual data privacy requirements

另一个有效的Linq到XML的解决方案:

XElement elem = XElement.Parse(xml);
var res = elem.Nodes().OfType<XText>().FirstOrDefault().Value;
Console.WriteLine(res); // Scales to meet individual data privacy requirements

尝试替换

 XDocument doc = XDocument.Parse(input);
            foreach (XElement para in doc.Descendants("para"))
            {
                para.ReplaceNodes(para.Descendants("li"));
            }​