innerXml,outerXml,innerText的不同

本文通过一个具体案例探讨了XML文件的基本操作方法,特别是innerXml和outerXml的区别与使用场景。作者通过对一段现有代码进行修改和实验,详细解释了这两个概念如何在实际应用中发挥作用。

昨天看到咱们园子里有一个仁兄写的关于xml的有关操作,在读的过程中,由于是初学者有不明白的地方就查资料,发现自己多innerXml,outerXml,innerXml的理解很不清楚,自己就在原有代码的上进行了部分修改(这不算侵权吧)。首先建立的xml的结构是这样子的,并命名为U-Shop:

在 C# 中,`XmlElement.InnerXml` 属性用于获取或设置当前 XML 节点所包含的 XML 片段,包括子节点的内容。当需要从一个由 `XmlSerializer` 序列化生成的 XML 节点中提取嵌套的 XML 数据时,可以使用 `InnerXml` 来直接读取节点的内部 XML 字符串内容[^3]。 例如,假设有一个类 `XML_root`,其中包含一个字符串属性 `template`,该属性在序列化时会被转换为 `<template>` 元素。当通过 `XmlSerializer` 反序列化该 XML 后,若希望获取 `<content>` 节点内部的完整 XML 内容(包括 `<SPCX>` 和 `<JBFY>` 等子节点),则可以访问 `XmlElement.InnerXml` 属性。 以下是一个示例代码,展示如何结合 `XmlSerializer` 和 `XmlElement.InnerXml` 读取序列化内容: ```csharp using System; using System.IO; using System.Xml; using System.Xml.Serialization; public class XML_root { public string template { get; set; } [XmlElement("content")] public XmlElement ContentElement { get; set; } } public class Program { public static void Main() { string xmlString = "<?xml version=\"1.0\"?>" + "<XML_root>" + "<content>" + "<SPCX tablename=\"S_XS\" type=\"varchar\">0001号</SPCX>" + "<JBFY tablename=\"S_XS\" type=\"varchar\"/>" + "</content>" + "<template>这里填写内容</template>" + "</XML_root>"; var serializer = new XmlSerializer(typeof(XML_root)); using (var reader = new StringReader(xmlString)) { var result = (XML_root)serializer.Deserialize(reader); Console.WriteLine("Template 内容: " + result.template); Console.WriteLine("Content 内部 XML: " + result.ContentElement.InnerXml); } } } ``` 上述代码中,`XmlElement` 类型的 `ContentElement` 属性用于映射 XML 中的 `<content>` 节点,随后通过 `InnerXml` 获取其内部完整的 XML 字符串,包括 `<SPCX>` 和 `<JBFY>` 子节点[^3]。 这种方式适用于需要保留 XML 片段结构并进一步处理嵌套 XML 内容的场景,例如将 XML 内容嵌入到其他文档结构中或进行动态解析。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值