为 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属性列表,可以使用该方法按名称添加属性。 有关详细信息,请参阅 NamedNodeMaps 和 NodeLists 中的节点集合

默认属性

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

属性子节点

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

另请参阅