You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中如何获取保留嵌套标签的XElement完整内容?

解决方案

要获取包含嵌套<b>标签的完整内容,不用自己写复杂遍历逻辑,直接用下面的方法即可:

方法1:直接拼接子节点字符串

这是最简单的实现方式,将<text>元素下的所有子节点(文本节点和<b>元素)转为字符串后拼接:

string fullContent = string.Concat(element.Nodes());

执行后就能得到目标结果:The temperature is raised <b>75</b> to <b>80</b> Celsius

方法2:用XmlWriter序列化(适合复杂场景)

如果需要控制XML输出格式(比如处理特殊字符转义),可以用XmlWriter来序列化所有子节点:

using (var stringWriter = new StringWriter())
using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings { OmitXmlDeclaration = true }))
{
    foreach (var node in element.Nodes())
    {
        node.WriteTo(xmlWriter);
    }
    xmlWriter.Flush();
    string fullContent = stringWriter.ToString();
}

你之前遍历失败的原因

你尝试遍历element.Nodes()没成功,大概率是只处理了元素节点(比如误用Elements()而非Nodes()),或者没直接把每个节点转为字符串。Nodes()返回的内容包含文本节点(XText类型)和元素节点(XElement类型),必须把每一个节点都调用ToString()再拼接,不能只提取元素的内容。

内容的提问来源于stack exchange,提问作者Krishantha Karunarathna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 19:55:49