InnerXml返回节点的子节点XML内容(不含自身标签),OuterXml返回节点及其全部子节点的完整XML字符串;二者均为只读字符串,适用于调试、内容提取或片段拼接。

简单说:InnerXml 是节点里面的 XML 内容(不含当前节点标签本身),OuterXml 是节点连带自己的完整 XML 字符串(含开始标签、内容、结束标签)。
InnerXml:只取“中间那部分”
它返回的是当前节点的**所有子节点的 XML 表示**,不包括当前节点自身的起始标签和结束标签。如果当前节点是空元素(如
- 比如节点是
,对 person 节点调用 InnerXml → 得到张三 25 张三 25 - 对 name 节点调用 InnerXml → 得到 张三(纯文本,无标签)
- 对一个自闭合节点
,InnerXml 是空字符串
OuterXml:原样“导出整个节点”
它返回当前节点及其所有子节点的完整 XML 字符串,也就是你在 XML 文本里实际看到的那一整段。
- 对上面的 person 节点调用 OuterXml → 得到
张三 25 - 对 name 节点调用 OuterXml → 得到
张三 - 对
调用 OuterXml → 还是
实际用法小提醒
这两个属性都是只读的,常用于调试查看、拼接片段或提取内容。注意它们返回的是字符串,不是新节点对象。
- 想“复制”某个节点及其全部内容 → 用 OuterXml + LoadXml() 或 AppendChild() 配合新建节点
- 只想拿子内容做文本处理(比如提取所有 HTML 片段)→ 优先看 InnerXml
- 遇到 CDATA、注释、处理指令等特殊节点时,InnerXml 和 OuterXml 的行为仍一致:OuterXml 包含自身,InnerXml 只含其子内容(可能为空)
基本上就这些。记住“Inner = 里面的内容,Outer = 整个盒子”,就不容易混了。










