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

读取XML文件时如何将text_description的子元素视为文本字符串

解决XML中保留HTML格式内容的问题

方案1:用XmlNode类型存储内容

直接把text_description属性定义为XmlNode类型,反序列化时会自动保留内部所有XML/HTML结构,后续通过OuterXml属性就能提取完整的带格式字符串。

示例类定义:

[XmlRoot("people")]
public class People
{
    [XmlElement("person")]
    public Person Person { get; set; }
}

public class Person
{
    public string name { get; set; }
    public int age { get; set; }
    
    [XmlElement("text_description")]
    public XmlNode TextDescription { get; set; }
}

使用示例:

var serializer = new XmlSerializer(typeof(People));
using var reader = new StringReader(xmlContent);
var people = (People)serializer.Deserialize(reader);

// 获取完整的带格式HTML字符串
string htmlContent = people.Person.TextDescription.OuterXml;

方案2:使用[XmlAnyElement]属性

如果需要更灵活的处理,用[XmlAnyElement]标记属性,它会捕获指定元素下的所有子节点,同样能完整保留结构。

修改类定义:

public class Person
{
    public string name { get; set; }
    public int age { get; set; }
    
    [XmlAnyElement("text_description")]
    public XmlElement TextDescription { get; set; }
}

提取字符串的方式和方案1一致,通过OuterXml即可获取包含所有内部HTML的内容。

为什么[XmlText]无效?

[XmlText]仅能捕获元素内的纯文本内容,而text_description里是嵌套的XML/HTML元素,并非纯文本,所以该属性无法识别这些子元素,自然拿不到你需要的格式内容。

内容的提问来源于stack exchange,提问作者Adam Degerman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:10:16