為 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 方法來按名稱加入屬性。 如需詳細資訊,請參閱 NamedNodeMap 和 NodeList 中的節點集合。
預設屬性
如果您建立了宣告要有預設屬性的項目,那麼具有預設值的新預設屬性會由 XML 文件物件模型 (DOM) 建立並且附加於項目。 預設屬性的子節點也會在此時建立。
屬性子節點
屬性節點的值會成為它的子節點。 有效的子節點有兩種類型:XmlText 節點和 XmlEntityReference 節點。 這些子節點讓像 FirstChild 和 LastChild 的方法能夠將它們當成子節點處理。 這種擁有子節點的屬性的區別在嘗試移除屬性或屬性子節點時很重要。 如需詳細資訊,請參閱移除 DOM 中項目節點的屬性。