Tworzenie nowych atrybutów dla elementów w modelu DOM
Tworzenie nowych atrybutów różni się od tworzenia innych typów węzłów, ponieważ atrybuty nie są węzłami. Są to właściwości węzła elementu i są zawarte w obiekcie XmlAttributeCollection skojarzonym z elementem. Istnieje wiele sposobów tworzenia atrybutu i dołączania go do elementu:
Pobierz węzeł elementu i użyj polecenia SetAttribute , aby dodać atrybut do kolekcji atrybutów tego elementu.
Utwórz węzeł XmlAttribute przy użyciu metody CreateAttribute, pobierz węzeł elementu, a następnie użyj polecenia SetAttributeNode, aby dodać węzeł do kolekcji atrybutów tego elementu.
W poniższym przykładzie pokazano, jak dodać atrybut do elementu przy użyciu metody 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);
}
}
W poniższym przykładzie pokazano, jak utworzyć nowy atrybut przy użyciu metody CreateAttribute . Atrybut jest następnie dodawany do kolekcji atrybutów elementu książki przy użyciu metody SetAttributeNode .
Biorąc pod uwagę następujący kod XML:
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
Utwórz nowy atrybut i nadaj mu wartość:
Dim attr As XmlAttribute = doc.CreateAttribute("publisher")
attr.Value = "WorldWide Publishing"
XmlAttribute attr = doc.CreateAttribute("publisher");
attr.Value = "WorldWide Publishing";
Dołącz atrybut do elementu:
doc.DocumentElement.SetAttributeNode(attr)
doc.DocumentElement.SetAttributeNode(attr);
Wyjście
<book genre="novel" ISBN="1-861001-57-5" publisher="WorldWide Publishing">
<title>Pride And Prejudice</title>
</book>
Pełny przykład kodu można znaleźć na stronie CreateAttribute.
Jeśli utworzono element XmlNamedNodeMap atrybutów, możesz dodać atrybut przy użyciu SetNamedItem metody . Aby uzyskać więcej informacji, zobacz Kolekcje węzłów w nazwanych węzłach Mapy i NodeLists.
Atrybuty domyślne
Jeśli utworzysz element zadeklarowany jako domyślny atrybut, zostanie utworzony nowy atrybut domyślny z jego wartością domyślną przez model DOM (XML Document Object Model) i dołączony do elementu. Węzły podrzędne atrybutu domyślnego są również tworzone w tej chwili.
Węzły podrzędne atrybutu
Wartość węzła atrybutu staje się jego węzłami podrzędnymi. Istnieją tylko dwa typy prawidłowych węzłów podrzędnych: węzły XmlText i węzły XmlEntityReference . Są to węzły podrzędne w tym sensie, że metody takie jak FirstChild i LastChild przetwarzają je jako węzły podrzędne. To rozróżnienie atrybutu o węzłach podrzędnych jest ważne podczas próby usunięcia atrybutów lub atrybutów węzłów podrzędnych. Aby uzyskać więcej informacji, zobacz Usuwanie atrybutów z węzła elementu w modelu DOM.