修改 XML 文档中的节点、内容和值

可通过多种方式修改文档中的节点和内容。 您可以:

更改节点值的简单方法是使用 node.Value = "new value";。 下表列出了此单行代码所针对的节点类型,以及该节点类型的确切数据发生更改。

节点类型 数据已更改
特征 特性的值。
CDATASection CDATA 节的内容。
注释 注释的内容。
ProcessingInstruction 内容(排除目标对象)。
文本 文本的内容。
XML声明 声明的内容,不包括 <?xml?> 标记。
空格 空白区的价值。 可以将该值设置为四个识别的 XML 空白字符之一:空格、制表符、CR 或 LF。
SignificantWhitespace 有效空白的值。 可以将该值设置为四个识别的 XML 空白字符之一:空格、制表符、CR 或 LF。

表中未列出的任何节点类型都不是设置值的有效节点类型。 设置任何其他节点类型的值都将引发 InvalidOperationException

InnerXml 属性更改当前节点的子节点的标记。 设置此属性会将子节点替换为给定字符串的已分析内容。 分析是在当前命名空间上下文中完成的。 此外, InnerXml 删除冗余命名空间声明。 因此,大量剪切和粘贴作不会增加具有冗余命名空间声明的文档大小。 有关显示命名空间对 InnerXml 操作影响的代码示例,请参阅InnerXml 属性。

使用 ReplaceDataRemoveChild 方法时,方法将返回已替换或移除的节点。 然后,可以在 XML 文档对象模型(DOM)中的其他位置重新插入此节点。 该方法 ReplaceData 对要插入到文档中的节点上执行两次验证检查。 第一个检查确保该节点成为某个节点的子级,这个节点可具有其类型的子节点。 第二个检查确保插入的节点不是它成为其子级的节点的上级。 违犯这两个条件中的任何一个都将引发 InvalidOperationException

向可编辑的节点中添加或从中移除只读子级是有效的。 然而,试图修改只读节点本身将引发 InvalidOperationException 异常。 修改 XmlEntityReference 节点的子级便属于这种情况。 该子级是只读的,因此无法修改。 任何修改它们的尝试都会导致抛出一个 InvalidOperationException

另请参阅