位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 修改节点的值

提问人:刘团圆发布时间:2020-12-10

    在了解如何改变节点值之前,先要明白,节点值一般比较复杂。实际上,即使派生于XmlNode的所有类都包含Value属性,它也很少返回有用的信息。初看起来它可能令人失望,但实际上是十分合理的。分析一下前面的books示例:

<books>

  <book>

    <title>Beginning Visual C# 2017</title>

    <author>Benjamin Perkins et al</author>

    <code>458685</code>

  </book>

  <book>

</books>

    文档中的每对标记都解析为DOM中的一个节点。在迭代文档中的所有节点时,会遇到许多XmlElement节点和三个 XmlText 节点。上述 XML 中的 XmlElement 节点是<books>、<book>、<titl>、<author>和<code>。 XmlText节点是title、author和code开始标记和结束标记之间的文本。也可以说title、author和code的值是标记之间的文本,但文本本身就是一个节点,是这个节点实际包含了值。其他标记都没有相关的值。

    在上述FormatText方法的代码靠近顶部的位置,if块中的下述代码在当前节点是XmlText时执行:

    text += node.Value;

    XmlText节点实例的Value属性用于获取节点的值。

    如果使用XmlElement类型的节点的Value属性,就返回null,但如果使用另两个方法InnerText和InnerXml中的一个,就可以获取XmlElement开始标记和结束标记之间的信息。也就是说,可以使用两个方法和一个属性来操作节点的值,如表所示。

说明

InnerText

这个属性获取当前节点中所有子节点的文本,把它作为一个串联字符串返回。也就是说,在上面的XML 中,如果获取 book 节点的 InnerText 值,就返回字符串 Beginning Visual C# 2017#Benjamin Perkins eta 丨458685»

如果获取title节点的InnerText,就只返回"Beginning Visual C# 2017"。可以使用这个方法设盟文本,但要小 心,因为如果设M了错误节点的文本,就很可能会改写不想改变的信息


InnerXml属性返回类似于InnerText的文本,但它也返回所有标记。因此,如果获取book节点上的InnerXml 值,结果是如下字符串:

InnerXml

<title>Beginning Visual C# 2017</title><author>Benjamin Perkins et al </authorxcode>458685</code>


可以看出,如果字符串包含要直接插入XML文档的内容,这是很有用的。但是要对该字符串负全贵,如果 插入格式错误的XML,应用程序就会产生异常

Value

Value厲性是操作文档中信息的最精练方式,但如前所述,在获取值时,只有几个类会返回有用的信息。返 回所需文本的类如下所示:

XmlText

XmlComment

XmlAttribute


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部