为 DOM 中的元素创建新特性

创建新特性与创建其他节点类型不同,因为特性不是节点。 它们是元素节点的属性,包含在与元素关联的 XmlAttributeCollection 中。 有多种方法可创建属性并将其附加到元素:

  • 获取元素节点,并使用 SetAttribute 将属性添加到相应元素的属性集合。

  • 使用 CreateAttribute 方法创建 XmlAttribute 节点,获取元素节点,再使用 SetAttributeNode 将节点添加到相应元素的属性集合。

下面的示例展示了如何使用 SetAttribute 方法将属性添加到元素:

Imports System.IO
Imports System.Xml

Public Class Sample

    Public Shared Sub Main()

        Dim doc As New XmlDocument()
        doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" & _
                    "<title>Pride And Prejudice</title>" & _
                    "</book>")
        Dim root As XmlElement = doc.DocumentElement

        ' Add a new attribute.
        root.SetAttribute("genre", "urn:samples", "novel")

        Console.WriteLine("Display the modified XML...")
        Console.WriteLine(doc.InnerXml)
    End Sub
End Class
using System;
using System.IO;
using System.Xml;

public class Sample
{
    public static void Main()
    {
        var doc = new XmlDocument();
        doc.LoadXml("<book xmlns:bk='urn:samples' bk:ISBN='1-861001-57-5'>" +
                    "<title>Pride And Prejudice</title>" +
                    "</book>");
        XmlElement root = doc.DocumentElement;

        // Add a new attribute.
        root.SetAttribute("genre", "urn:samples", "novel");

        Console.WriteLine("Display the modified XML...");
        Console.WriteLine(doc.InnerXml);
    }
}

下面的示例展示了如何使用 CreateAttribute 方法新建特性。 然后使用 SetAttributeNode 方法将特性添加到 book 元素的特性集合。

已知下列 XML:

<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>

创建一个新属性并为其提供值:

Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";

将特性附加到元素:

doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);

输出

<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>

有关完整代码示例,可以参阅 CreateAttribute

如果创建了属性的 XmlNamedNodeMap,可以使用 SetNamedItem 方法按名称添加属性。 有关详细信息,请参阅 NamedNodeMaps 和 NodeLists 中的节点集合

默认属性

如果创建一个声明为具有默认属性的元素,则 XML 文档对象模型 (DOM) 创建一个带默认值的新默认属性并将其附加到该元素。 此时还创建默认属性的子节点。

属性子节点

属性节点的值成为它的子节点。 有效子节点只有两种类型:XmlText 节点和 XmlEntityReference 节点。 这些之所以是子节点是因为,FirstChild 和 LastChild 等方法按子节点处理它们。 当试图移除属性或属性子节点时,属性这种具有子节点的特性很重要。 有关详细信息,请参阅删除 DOM 中元素节点的属性

请参阅