Nieuwe kenmerken maken voor elementen in de DOM
Het maken van nieuwe kenmerken verschilt van het maken van andere knooppunttypen, omdat kenmerken geen knooppunten zijn. Het zijn eigenschappen van een elementknooppunt en zijn opgenomen in een XmlAttributeCollection die aan het element is gekoppeld. Er zijn meerdere manieren om een kenmerk te maken en te koppelen aan een element:
Haal het elementknooppunt op en gebruik SetAttribute om een kenmerk toe te voegen aan de kenmerkverzameling van dat element.
Maak een XmlAttribute-knooppunt met behulp van de methode CreateAttribute , haal het elementknooppunt op en gebruik SetAttributeNode om het knooppunt toe te voegen aan de kenmerkverzameling van dat element.
In het volgende voorbeeld ziet u hoe u een kenmerk toevoegt aan een element met behulp van de methode 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);
}
}
In het volgende voorbeeld ziet u hoe u een nieuw kenmerk maakt met behulp van de methode CreateAttribute . Het kenmerk wordt vervolgens toegevoegd aan de kenmerkverzameling van het boekelement met behulp van de methode SetAttributeNode .
Gegeven de volgende XML:
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
Maak een nieuw kenmerk en geef het een waarde:
Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";
Koppel het kenmerk aan het element:
doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);
Uitvoer
<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>
Het volledige codevoorbeeld vindt u op CreateAttribute.
Als u een XmlNamedNodeMap van kenmerken hebt gemaakt, kunt u een kenmerk op naam toevoegen met behulp van de SetNamedItem methode. Zie Knooppuntverzamelingen in NamedNode Kaarten en NodeLists voor meer informatie.
Standaardkenmerken
Als u een element maakt dat is gedeclareerd als standaardkenmerk, wordt er een nieuw standaardkenmerk met de standaardwaarde gemaakt door het XML Document Object Model (DOM) en gekoppeld aan het element. De onderliggende knooppunten van het standaardkenmerk worden op dit moment ook gemaakt.
Onderliggende knooppunten van kenmerken
De waarde van een kenmerkknooppunt wordt de onderliggende knooppunten. Er zijn slechts twee typen geldige onderliggende knooppunten: XmlText-knooppunten en XmlEntityReference-knooppunten . Dit zijn onderliggende knooppunten in de zin dat methoden zoals FirstChild en LastChild ze verwerken als onderliggende knooppunten. Dit onderscheid tussen een kenmerk met onderliggende knooppunten is belangrijk bij het verwijderen van kenmerken of onderliggende kenmerkknooppunten. Zie Kenmerken verwijderen uit een elementknooppunt in de DOM voor meer informatie.