XmlDocument Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt ein XML-Dokument dar. Sie können diese Klasse verwenden, um XML in einem Dokument zu laden, zu überprüfen, zu bearbeiten, hinzuzufügen und zu positionieren.
public ref class XmlDocument : System::Xml::XmlNode
public class XmlDocument : System.Xml.XmlNode
type XmlDocument = class
inherit XmlNode
Public Class XmlDocument
Inherits XmlNode
- Vererbung
- Abgeleitet
Hinweise
Die XmlDocument Klasse ist eine Speicherdarstellung eines XML-Dokuments. Es implementiert den W3C XML Document Object Model (DOM) Level 1 Core und den Core DOM Level 2.
DOM steht für das Dokumentobjektmodell. Weitere Informationen hierzu finden Sie unter XML Document Object Model (DOM).
Sie können XML in das DOM laden, indem Sie die XmlDocument Klasse verwenden und dann xml im Dokument programmgesteuert lesen, ändern und entfernen.
Wenn Sie die XmlDocument Klasse genauer unter die Lupe nehmen und sehen möchten, wie sie implementiert ist, schauen Sie in die Referenzdokumentation.
Laden von XML in das Dokumentobjektmodell
Beginnen Sie mit einem XML-Dokument wie diesem, das einige Bücher in einer Auflistung enthält. Es enthält die grundlegenden Dinge, die Sie in einem beliebigen XML-Dokument finden würden, einschließlich eines Namespaces, Elemente, die Daten darstellen, und Attribute, die die Daten beschreiben.
<?xml version="1.0" encoding="utf-8"?>
<books xmlns="http://www.contoso.com/books">
<book genre="novel" ISBN="1-861001-57-8" publicationdate="1823-01-28">
<title>Pride And Prejudice</title>
<price>24.95</price>
</book>
<book genre="novel" ISBN="1-861002-30-1" publicationdate="1985-01-01">
<title>The Handmaid's Tale</title>
<price>29.95</price>
</book>
<book genre="novel" ISBN="1-861001-45-3" publicationdate="1811-01-01">
<title>Sense and Sensibility</title>
<price>19.95</price>
</book>
</books>
Laden Sie als Nächstes diese Daten in das DOM, damit Sie damit im Arbeitsspeicher arbeiten können. Die am häufigsten verwendete Methode hierfür ist, indem man auf eine Datei auf Ihrem lokalen Computer oder in einem Netzwerk verweist.
In diesem Beispiel wird XML aus einer Datei geladen. Wenn die Datei nicht vorhanden ist, generiert sie nur einen XML-Code und lädt dies.
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
try { doc.Load("booksData.xml"); }
catch (System.IO.FileNotFoundException)
{
doc.LoadXml("<?xml version=\"1.0\"?> \n" +
"<books xmlns=\"http://www.contoso.com/books\"> \n" +
" <book genre=\"novel\" ISBN=\"1-861001-57-8\" publicationdate=\"1823-01-28\"> \n" +
" <title>Pride And Prejudice</title> \n" +
" <price>24.95</price> \n" +
" </book> \n" +
" <book genre=\"novel\" ISBN=\"1-861002-30-1\" publicationdate=\"1985-01-01\"> \n" +
" <title>The Handmaid's Tale</title> \n" +
" <price>29.95</price> \n" +
" </book> \n" +
"</books>");
}
Dim doc As XmlDocument = New XmlDocument
doc.PreserveWhitespace = True
Try
doc.Load("booksData.xml")
Catch ex As System.IO.FileNotFoundException
' If no file is found, generate some XML.
doc.LoadXml("<?xml version=""1.0""?> " & ControlChars.NewLine & _
"<books xmlns=""http://www.contoso.com/books""> " & ControlChars.NewLine & _
" <book genre=""novel"" ISBN=""1-861001-57-8"" publicationdate=""1823-01-28""> " & ControlChars.NewLine & _
" <title>Pride And Prejudice</title> " & ControlChars.NewLine & _
" <price>24.95</price> " & ControlChars.NewLine & _
" </book> " & ControlChars.NewLine & _
" <book genre=""novel"" ISBN=""1-861002-30-1"" publicationdate=""1985-01-01""> " & ControlChars.NewLine & _
" <title>The Handmaid's Tale</title> " & ControlChars.NewLine & _
" <price>29.95</price> " & ControlChars.NewLine & _
" </book> " & ControlChars.NewLine & _
"</books>")
End Try
Weitere Informationen finden Sie unter Lesen eines XML-Dokuments in das DOM.
Überprüfen anhand eines Schemas
Beginnen Sie mit einem XML-Schema wie diesem. Dieses Schema definiert die Datentypen im XML-Code und welche Attribute erforderlich sind.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
targetNamespace="http://www.contoso.com/books">
<xs:element name="books">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="book">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" />
<xs:element name="price" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="genre" type="xs:string" use="required" />
<xs:attribute name="ISBN" type="xs:string" use="required" />
<xs:attribute name="publicationdate" type="xs:date" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Erstellen Sie ein XmlReader Objekt mithilfe Ihres Schemas, und laden Sie es dann in das DOM. Erstellen Sie einen Ereignishandler, der ausgeführt wird, wenn Code versucht, Die XML-Datei auf Eine Weise zu ändern, die gegen die Regeln des Schemas verstößt.
Diese Codeblöcke zeigen Hilfsmethoden an, die all dies tun.
//************************************************************************************
//
// Helper method that generates an XML string.
//
//************************************************************************************
private string generateXMLString()
{
string xml = "<?xml version=\"1.0\"?> \n" +
"<books xmlns=\"http://www.contoso.com/books\"> \n" +
" <book genre=\"novel\" ISBN=\"1-861001-57-8\" publicationdate=\"1823-01-28\"> \n" +
" <title>Pride And Prejudice</title> \n" +
" <price>24.95</price> \n" +
" </book> \n" +
" <book genre=\"novel\" ISBN=\"1-861002-30-1\" publicationdate=\"1985-01-01\"> \n" +
" <title>The Handmaid's Tale</title> \n" +
" <price>29.95</price> \n" +
" </book> \n" +
" <book genre=\"novel\" ISBN=\"1-861001-45-3\" publicationdate=\"1811-01-01\"> \n" +
" <title>Sense and Sensibility</title> \n" +
" <price>19.95</price> \n" +
" </book> \n" +
"</books>";
return xml;
}
//************************************************************************************
//
// Associate the schema with XML. Then, load the XML and validate it against
// the schema.
//
//************************************************************************************
public XmlDocument LoadDocumentWithSchemaValidation(bool generateXML, bool generateSchema)
{
XmlReader reader = null;
XmlReaderSettings settings = new XmlReaderSettings();
// Helper method to retrieve schema.
XmlSchema schema = getSchema(generateSchema);
settings.Schemas.Add(schema);
settings.ValidationEventHandler += ValidationCallback;
settings.ValidationFlags =
settings.ValidationFlags | XmlSchemaValidationFlags.ReportValidationWarnings;
settings.ValidationType = ValidationType.Schema;
if (!generateXML)
{
try
{
reader = XmlReader.Create("booksData.xml", settings);
}
catch (FileNotFoundException ex)
{
Console.WriteLine(
$"XML file not found so generating: {ex.Message}");
generateXML = true;
}
}
if (generateXML)
{
string xml = generateXMLString();
StringReader stringReader = new StringReader(xml);
reader = XmlReader.Create(stringReader, settings);
}
XmlDocument doc = new XmlDocument();
doc.PreserveWhitespace = true;
doc.Load(reader);
reader.Close();
return doc;
}
//************************************************************************************
//
// Helper method that generates an XML Schema.
//
//************************************************************************************
private string generateXMLSchema()
{
string xmlSchema =
"<?xml version=\"1.0\" encoding=\"utf-8\"?> " +
"<xs:schema attributeFormDefault=\"unqualified\" " +
"elementFormDefault=\"qualified\" targetNamespace=\"http://www.contoso.com/books\" " +
"xmlns:xs=\"http://www.w3.org/2001/XMLSchema\"> " +
"<xs:element name=\"books\"> " +
"<xs:complexType> " +
"<xs:sequence> " +
"<xs:element maxOccurs=\"unbounded\" name=\"book\"> " +
"<xs:complexType> " +
"<xs:sequence> " +
"<xs:element name=\"title\" type=\"xs:string\" /> " +
"<xs:element name=\"price\" type=\"xs:decimal\" /> " +
"</xs:sequence> " +
"<xs:attribute name=\"genre\" type=\"xs:string\" use=\"required\" /> " +
"<xs:attribute name=\"publicationdate\" type=\"xs:date\" use=\"required\" /> " +
"<xs:attribute name=\"ISBN\" type=\"xs:string\" use=\"required\" /> " +
"</xs:complexType> " +
"</xs:element> " +
"</xs:sequence> " +
"</xs:complexType> " +
"</xs:element> " +
"</xs:schema> ";
return xmlSchema;
}
//************************************************************************************
//
// Helper method that gets a schema
//
//************************************************************************************
private XmlSchema getSchema(bool generateSchema)
{
XmlSchemaSet xs = new XmlSchemaSet();
XmlSchema schema = null;
if (!generateSchema)
{
try
{
schema = xs.Add("http://www.contoso.com/books", "booksData.xsd");
}
catch (FileNotFoundException ex)
{
Console.WriteLine(
$"XSD file not found so generating: {ex.Message}");
generateSchema = true;
}
}
if (generateSchema)
{
string xmlSchemaString = generateXMLSchema();
StringReader stringReader = new StringReader(xmlSchemaString);
XmlReader reader = XmlReader.Create(stringReader);
schema = xs.Add("http://www.contoso.com/books", reader);
}
return schema;
}
//************************************************************************************
//
// Helper method to validate the XML against the schema.
//
//************************************************************************************
private void validateXML(bool generateSchema, XmlDocument doc)
{
if (doc.Schemas.Count == 0)
{
// Helper method to retrieve schema.
XmlSchema schema = getSchema(generateSchema);
doc.Schemas.Add(schema);
}
// Use a callback to validate the XML node against the schema.
doc.Validate(ValidationCallback);
}
//************************************************************************************
//
// Event handler that is raised when XML doesn't validate against the schema.
//
//************************************************************************************
void ValidationCallback(object sender,
System.Xml.Schema.ValidationEventArgs e)
{
if (e.Severity == XmlSeverityType.Warning)
{
Console.WriteLine
("The following validation warning occurred: " + e.Message);
}
else if (e.Severity == XmlSeverityType.Error)
{
Console.WriteLine
("The following critical validation errors occurred: " + e.Message);
}
}
'************************************************************************************
'
' Associate the schema with XML. Then, load the XML and validate it against
' the schema.
'
'************************************************************************************
Public Function LoadDocumentWithSchemaValidation(ByVal generateXML As Boolean, ByVal generateSchema As Boolean) As XmlDocument
Dim reader As XmlReader
Dim settings As XmlReaderSettings = New XmlReaderSettings
' Helper method to retrieve schema.
Dim schema As XmlSchema = getSchema(generateSchema)
If (schema Is Nothing) Then
Return Nothing
End If
settings.Schemas.Add(schema)
AddHandler settings.ValidationEventHandler, AddressOf settings_ValidationEventHandler
settings.ValidationFlags = (settings.ValidationFlags Or XmlSchemaValidationFlags.ReportValidationWarnings)
settings.ValidationType = ValidationType.Schema
Try
reader = XmlReader.Create("booksData.xml", settings)
Catch ex As System.IO.FileNotFoundException
If generateXML Then
Dim xml As String = generateXMLString()
Dim byteArray() As Byte = Encoding.UTF8.GetBytes(xml)
Dim stream As MemoryStream = New MemoryStream(byteArray)
reader = XmlReader.Create(stream, settings)
Else
Return Nothing
End If
End Try
Dim doc As XmlDocument = New XmlDocument
doc.PreserveWhitespace = True
doc.Load(reader)
reader.Close()
Return doc
End Function
'************************************************************************************
'
' Helper method that generates an XML Schema.
'
'************************************************************************************
Private Function generateXMLSchema() As String
Dim generatedXmlSchema As String = "<?xml version=""1.0"" encoding=""utf-8""?> " & _
"<xs:schema attributeFormDefault=""unqualified"" " & _
"elementFormDefault=""qualified"" targetNamespace=""http://www.contoso.com/books"" " & _
"xmlns:xs=""http://www.w3.org/2001/XMLSchema""> " & _
"<xs:element name=""books""> " & _
"<xs:complexType> " & _
"<xs:sequence> " & _
"<xs:element maxOccurs=""unbounded"" name=""book""> " & _
"<xs:complexType> " & _
"<xs:sequence> " & _
"<xs:element name=""title"" type=""xs:string"" /> " & _
"<xs:element name=""price"" type=""xs:decimal"" /> " & _
"</xs:sequence> " & _
"<xs:attribute name=""genre"" type=""xs:string"" use=""required"" /> " & _
"<xs:attribute name=""publicationdate"" type=""xs:date"" use=""required"" /> " & _
"<xs:attribute name=""ISBN"" type=""xs:string"" use=""required"" /> " & _
"</xs:complexType> " & _
"</xs:element> " & _
"</xs:sequence> " & _
"</xs:complexType> " & _
"</xs:element> " & _
"</xs:schema> "
Return generatedXmlSchema
End Function
'************************************************************************************
'
' Helper method that gets a schema
'
'************************************************************************************
Private Function getSchema(ByVal generateSchema As Boolean) As XmlSchema
Dim xs As XmlSchemaSet = New XmlSchemaSet
Dim schema As XmlSchema
Try
schema = xs.Add("http://www.contoso.com/books", "booksData.xsd")
Catch ex As System.IO.FileNotFoundException
If generateSchema Then
Dim xmlSchemaString As String = generateXMLSchema()
Dim byteArray() As Byte = Encoding.UTF8.GetBytes(xmlSchemaString)
Dim stream As MemoryStream = New MemoryStream(byteArray)
Dim reader As XmlReader = XmlReader.Create(stream)
schema = xs.Add("http://www.contoso.com/books", reader)
Else
Return Nothing
End If
End Try
Return schema
End Function
'************************************************************************************
'
' Helper method to validate the XML against the schema.
'
'************************************************************************************
Private Sub validateXML(ByVal generateSchema As Boolean, ByVal doc As XmlDocument)
If (doc.Schemas.Count = 0) Then
' Helper method to retrieve schema.
Dim schema As XmlSchema = getSchema(generateSchema)
doc.Schemas.Add(schema)
End If
' Use an event handler to validate the XML node against the schema.
doc.Validate(AddressOf settings_ValidationEventHandler)
End Sub
'************************************************************************************
'
' Event handler that is raised when XML doesn't validate against the schema.
'
'************************************************************************************
Private Sub settings_ValidationEventHandler(ByVal sender As Object, ByVal e As System.Xml.Schema.ValidationEventArgs)
If (e.Severity = XmlSeverityType.Warning) Then
System.Windows.Forms.MessageBox.Show(("The following validation warning occurred: " & e.Message))
ElseIf (e.Severity = XmlSeverityType.Error) Then
System.Windows.Forms.MessageBox.Show(("The following critical validation errors occurred: " & e.Message))
Dim objectType As Type = sender.GetType
End If
End Sub
Weitere Informationen finden Sie unter Validating an XML Document in the DOM.
Durch die Dokumentstruktur navigieren
Mithilfe von Eigenschaften können Sie in einem XML-Dokument navigieren. Bevor Sie jedoch eine dieser Ausdrücke verwenden, sollten Sie einige Begriffe schnell überprüfen. Ihr Dokument besteht aus Knoten. Jeder Knoten verfügt über einen einzelnen übergeordneten Knoten direkt darüber. Der einzige Knoten, der nicht über einen übergeordneten Knoten verfügt, ist der Dokumentstamm, da es sich um den Knoten der obersten Ebene handelt. Die meisten Knoten können untergeordnete Knoten enthalten, die sich direkt darunter befinden. Knoten, die sich auf derselben Ebene befinden, sind gleichgeordnete Knoten.
Die folgenden Beispiele zeigen, wie Sie den Stammknoten abrufen, zum ersten untergeordneten Knoten des Stammknotens springen, auf einen seiner untergeordneten Knoten zugreifen, zum übergeordneten Knoten zurückkehren und dann über gleichgeordnete Knoten navigieren.
Beginnen mit dem Stammknoten
In diesem Beispiel wird der Stammknoten abgerufen und anschließend dieser Knoten verwendet, um den Inhalt des Dokuments in die Konsole auszugeben.
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.LoadXml("<?xml version='1.0' ?>" +
"<book genre='novel' ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>");
//Display the document element.
Console.WriteLine(doc.DocumentElement.OuterXml);
}
}
Option Strict On
Option Explicit On
Imports System.Xml
Public Class ElementSample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
doc.LoadXml("<?xml version='1.0' ?>" &
"<book genre='novel' ISBN='1-861001-57-5'>" &
"<title>Pride And Prejudice</title>" &
"</book>")
'Display the document element.
Console.WriteLine(doc.DocumentElement.OuterXml)
End Sub
End Class
Abrufen untergeordneter Knoten
Dieses Beispiel springt zum ersten untergeordneten Knoten des Stammknotens und durchläuft dann die untergeordneten Knoten dieses Knotens, falls vorhanden.
using System;
using System.Xml;
public class Sample2
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<book ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"<price>19.95</price>" +
"</book>");
XmlNode root = doc.FirstChild;
//Display the contents of the child nodes.
if (root.HasChildNodes)
{
for (int i = 0; i < root.ChildNodes.Count; i++)
{
Console.WriteLine(root.ChildNodes[i].InnerText);
}
}
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim doc As New XmlDocument()
doc.LoadXml("<book ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"<price>19.95</price>" & _
"</book>")
Dim root As XmlNode = doc.FirstChild
'Display the contents of the child nodes.
If root.HasChildNodes Then
Dim i As Integer
For i = 0 To root.ChildNodes.Count - 1
Console.WriteLine(root.ChildNodes(i).InnerText)
Next i
End If
End Sub
End Class
Zurückkehren zum übergeordneten Knoten
Verwenden Sie die ParentNode-Eigenschaft.
Verweisen auf den letzten untergeordneten Knoten
In diesem Beispiel wird der Preis eines Buchs in die Konsole geschrieben. Der Preisknoten ist das letzte untergeordnete Element eines Buchknotens.
using System;
using System.Xml;
public class Sample3
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.LoadXml("<book ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"<price>19.95</price>" +
"</book>");
XmlNode root = doc.FirstChild;
Console.WriteLine("Display the price element...");
Console.WriteLine(root.LastChild.OuterXml);
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Public Class LastChildSample
Public Shared Sub Main()
Dim doc As New XmlDocument()
doc.LoadXml("<book ISBN='1-861001-57-5'>" &
"<title>Pride And Prejudice</title>" &
"<price>19.95</price>" &
"</book>")
Dim root As XmlNode = doc.FirstChild
Console.WriteLine("Display the price element...")
Console.WriteLine(root.LastChild.OuterXml)
End Sub
End Class
Vorwärtsnavigation über gleichgeordnete Knoten
Dieses Beispiel navigiert vorwärts von Buch zu Buch. Buchknoten sind gleichgeordnete Knoten.
using System;
using System.Xml;
public class Sample4
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
XmlNode currNode = doc.DocumentElement.FirstChild;
Console.WriteLine("First book...");
Console.WriteLine(currNode.OuterXml);
XmlNode nextNode = currNode.NextSibling;
Console.WriteLine("\r\nSecond book...");
Console.WriteLine(nextNode.OuterXml);
}
}
Imports System.Xml
Public Class NextSiblingSample
Public Shared Sub Main()
Dim doc As XmlDocument = New XmlDocument()
doc.Load("books.xml")
Dim currNode As XmlNode = doc.DocumentElement.FirstChild
Console.WriteLine("First book...")
Console.WriteLine(currNode.OuterXml)
Dim nextNode As XmlNode = currNode.NextSibling
Console.WriteLine(ControlChars.Lf + "Second book...")
Console.WriteLine(nextNode.OuterXml)
End Sub
End Class
Rückwärtsnavigation über gleichgeordnete Knoten
Dieses Beispiel navigiert rückwärts von Buch zu Buch.
using System;
using System.Xml;
public class Sample {
public static void Main() {
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
XmlNode lastNode = doc.DocumentElement.LastChild;
Console.WriteLine("Last book...");
Console.WriteLine(lastNode.OuterXml);
XmlNode prevNode = lastNode.PreviousSibling;
Console.WriteLine("\r\nPrevious book...");
Console.WriteLine(prevNode.OuterXml);
}
}
Imports System.Xml
Public Class Sample5
Public Shared Sub Main()
Dim doc As XmlDocument = New XmlDocument()
doc.Load("books.xml")
Dim lastNode As XmlNode = doc.DocumentElement.LastChild
Console.WriteLine("Last book...")
Console.WriteLine(lastNode.OuterXml)
Dim prevNode As XmlNode = lastNode.PreviousSibling
Console.WriteLine(ControlChars.Lf + "Previous book...")
Console.WriteLine(prevNode.OuterXml)
End Sub
End Class
Suchen von Knoten
Die am häufigsten verwendete Methode zum Auffinden eines oder mehrerer Datenknoten besteht darin, eine XPath-Abfragezeichenfolge zu verwenden, aber es gibt auch Methoden, die keines erfordern.
Abrufen eines einzelnen Knotens
In diesem Beispiel wird ein Buch mithilfe der ISBN-Nummer gesucht.
public XmlNode GetBook(string uniqueAttribute, XmlDocument doc)
{
XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("bk", "http://www.contoso.com/books");
string xPathString = "//bk:books/bk:book[@ISBN='" + uniqueAttribute + "']";
XmlNode xmlNode = doc.DocumentElement.SelectSingleNode(xPathString, nsmgr);
return xmlNode;
}
Public Function GetBook(ByVal uniqueAttribute As String, ByVal doc As XmlDocument) As XmlNode
Dim nsmgr As XmlNamespaceManager = New XmlNamespaceManager(doc.NameTable)
nsmgr.AddNamespace("bk", "http://www.contoso.com/books")
Dim xPathString As String = ("//bk:books/bk:book[@ISBN='" _
& (uniqueAttribute & "']"))
Dim xmlNode As XmlNode = doc.DocumentElement.SelectSingleNode(xPathString, nsmgr)
Return xmlNode
End Function
Die in diesem Beispiel verwendete Zeichenfolge ist eine Xpath-Abfrage. Weitere Beispiele finden Sie in XPath-Beispielen.
Sie können auch GetElementById verwenden, um Knoten abzurufen. Um diesen Ansatz zu verwenden, müssen Sie die ID in den Dokumenttypdefinitionsdeklarationen Ihrer XML-Datei definieren.
Nachdem Sie einen Knoten abgerufen haben, erhalten Sie den Wert von Attributen oder untergeordneten Knoten. In diesem Beispiel wird hierzu ein Buchknoten verwendet.
public void GetBookInformation(ref string title, ref string ISBN, ref string publicationDate,
ref string price, ref string genre, XmlNode book)
{
XmlElement bookElement = (XmlElement)book;
// Get the attributes of a book.
XmlAttribute attr = bookElement.GetAttributeNode("ISBN");
ISBN = attr.InnerXml;
attr = bookElement.GetAttributeNode("genre");
genre = attr.InnerXml;
attr = bookElement.GetAttributeNode("publicationdate");
publicationDate = attr.InnerXml;
// Get the values of child elements of a book.
title = bookElement["title"].InnerText;
price = bookElement["price"].InnerText;
}
Public Sub GetBookInformation(ByRef title As String, ByRef ISBN As String, ByRef publicationDate As String, ByRef price As String, ByRef genre As String, ByVal book As XmlNode)
Dim bookElement As XmlElement = CType(book, XmlElement)
' Get the attributes of a book.
Dim attr As XmlAttribute = bookElement.GetAttributeNode("ISBN")
ISBN = attr.InnerXml
attr = bookElement.GetAttributeNode("genre")
genre = attr.InnerXml
attr = bookElement.GetAttributeNode("publicationdate")
publicationDate = attr.InnerXml
' Get the values of child elements of a book.
title = bookElement("title").InnerText
price = bookElement("price").InnerText
End Sub
Eine Sammlung von Knoten abrufen
In diesem Beispiel werden alle Bücher ausgewählt, bei denen der Nachname des Autors austen ist, und ändert dann den Preis dieser Bücher.
using System;
using System.Xml;
public class Sample6
{
public static void Main()
{
XmlDocument doc = new XmlDocument();
doc.Load("booksort.xml");
XmlNodeList nodeList;
XmlNode root = doc.DocumentElement;
nodeList = root.SelectNodes("descendant::book[author/last-name='Austen']");
//Change the price on the books.
foreach (XmlNode book in nodeList)
{
book.LastChild.InnerText = "15.95";
}
Console.WriteLine("Display the modified XML document....");
doc.Save(Console.Out);
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
'Create the XmlDocument.
Dim doc as XmlDocument = new XmlDocument()
doc.Load("booksort.xml")
Dim book as XmlNode
Dim nodeList as XmlNodeList
Dim root as XmlNode = doc.DocumentElement
nodeList=root.SelectNodes("descendant::book[author/last-name='Austen']")
'Change the price on the books.
for each book in nodeList
book.LastChild.InnerText="15.95"
next
Console.WriteLine("Display the modified XML document....")
doc.Save(Console.Out)
end sub
end class
Sie können auch eine Sammlung von Knoten abrufen, indem Sie den Namen des Knotens verwenden. In diesem Beispiel wird eine Sammlung aller Buchtitel erstellt.
using System;
using System.Xml;
public class Sample1
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
//Display all the book titles.
XmlNodeList elemList = doc.GetElementsByTagName("title");
for (int i = 0; i < elemList.Count; i++)
{
Console.WriteLine(elemList[i].InnerXml);
}
}
}
Option Explicit On
Option Strict On
Imports System.Xml
Public Class TagSample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
doc.Load("books.xml")
'Display all the book titles.
Dim elemList As XmlNodeList = doc.GetElementsByTagName("title")
Dim i As Integer
For i = 0 To elemList.Count - 1
Console.WriteLine(elemList(i).InnerXml)
Next i
End Sub
End Class
Weitere Informationen finden Sie unter Auswählen von Knoten mithilfe der XPath-Navigation.
Knoten bearbeiten
In diesem Beispiel werden ein Buchknoten und seine Attribute bearbeitet.
public void editBook(string title, string ISBN, string publicationDate,
string genre, string price, XmlNode book, bool validateNode, bool generateSchema)
{
XmlElement bookElement = (XmlElement)book;
// Get the attributes of a book.
bookElement.SetAttribute("ISBN", ISBN);
bookElement.SetAttribute("genre", genre);
bookElement.SetAttribute("publicationdate", publicationDate);
// Get the values of child elements of a book.
bookElement["title"].InnerText = title;
bookElement["price"].InnerText = price;
if (validateNode)
{
validateXML(generateSchema, bookElement.OwnerDocument);
}
}
Public Sub editBook(ByVal title As String, ByVal ISBN As String,
ByVal publicationDate As String, ByVal genre As String,
ByVal price As String, ByVal book As XmlNode, ByVal validateNode As Boolean,
ByVal generateSchema As Boolean)
Dim bookElement As XmlElement = CType(book, XmlElement)
' Get the attributes of a book.
bookElement.SetAttribute("ISBN", ISBN)
bookElement.SetAttribute("genre", genre)
bookElement.SetAttribute("publicationdate", publicationDate)
' Get the values of child elements of a book.
bookElement("title").InnerText = title
bookElement("price").InnerText = price
If validateNode Then
validateXML(generateSchema, bookElement.OwnerDocument)
End If
End Sub
Weitere Informationen finden Sie unter Ändern von Knoten, Inhalten und Werten in einem XML-Dokument.
Hinzufügen von Knoten
Verwenden Sie die CreateElement Methode oder die CreateNode Methode, um einen Knoten hinzuzufügen.
Verwenden Sie die CreateElement Methode, um einen Datenknoten wie ein Buch hinzuzufügen.
Verwenden Sie für jeden anderen Knotentyp, z. B. einen Kommentar, einen Leerzeichenknoten oder einen CDATA-Knoten, die CreateNode Methode.
In diesem Beispiel wird ein Buchknoten erstellt, diesem Knoten Attribute hinzugefügt und anschließend dem Dokument dieser Knoten hinzugefügt.
public XmlElement AddNewBook(string genre, string ISBN, string misc,
string title, string price, XmlDocument doc)
{
// Create a new book element.
XmlElement bookElement = doc.CreateElement("book", "http://www.contoso.com/books");
// Create attributes for book and append them to the book element.
XmlAttribute attribute = doc.CreateAttribute("genre");
attribute.Value = genre;
bookElement.Attributes.Append(attribute);
attribute = doc.CreateAttribute("ISBN");
attribute.Value = ISBN;
bookElement.Attributes.Append(attribute);
attribute = doc.CreateAttribute("publicationdate");
attribute.Value = misc;
bookElement.Attributes.Append(attribute);
// Create and append a child element for the title of the book.
XmlElement titleElement = doc.CreateElement("title");
titleElement.InnerText = title;
bookElement.AppendChild(titleElement);
// Introduce a newline character so that XML is nicely formatted.
bookElement.InnerXml =
bookElement.InnerXml.Replace(titleElement.OuterXml,
"\n " + titleElement.OuterXml + " \n ");
// Create and append a child element for the price of the book.
XmlElement priceElement = doc.CreateElement("price");
priceElement.InnerText= price;
bookElement.AppendChild(priceElement);
// Introduce a newline character so that XML is nicely formatted.
bookElement.InnerXml =
bookElement.InnerXml.Replace(priceElement.OuterXml, priceElement.OuterXml + " \n ");
return bookElement;
}
Public Function AddNewBook(ByVal genre As String, ByVal ISBN As String, ByVal misc As String, ByVal title As String, ByVal price As String, ByVal doc As XmlDocument) As XmlElement
' Create a new book element.
Dim bookElement As XmlElement = doc.CreateElement("book", "http://www.contoso.com/books")
' Create attributes for book and append them to the book element.
Dim attribute As XmlAttribute = doc.CreateAttribute("genre")
attribute.Value = genre
bookElement.Attributes.Append(attribute)
attribute = doc.CreateAttribute("ISBN")
attribute.Value = ISBN
bookElement.Attributes.Append(attribute)
attribute = doc.CreateAttribute("publicationdate")
attribute.Value = misc
bookElement.Attributes.Append(attribute)
' Create and append a child element for the title of the book.
Dim titleElement As XmlElement = doc.CreateElement("title")
titleElement.InnerText = title
bookElement.AppendChild(titleElement)
' Introduce a newline character so that XML is nicely formatted.
bookElement.InnerXml = bookElement.InnerXml.Replace(titleElement.OuterXml, _
"\n " & titleElement.OuterXml & " " & ControlChars.NewLine + " ")
' Create and append a child element for the price of the book.
Dim priceElement As XmlElement = doc.CreateElement("price")
priceElement.InnerText = price
bookElement.AppendChild(priceElement)
' Introduce a newline character so that XML is nicely formatted.
bookElement.InnerXml = bookElement.InnerXml.Replace(priceElement.OuterXml,
(priceElement.OuterXml & " " & ControlChars.NewLine & " "))
Return bookElement
End Function
Weitere Informationen finden Sie unter Einfügen von Knoten in ein XML-Dokument.
Entfernen von Knoten
Verwenden Sie die RemoveChild Methode, um einen Knoten zu entfernen.
In diesem Beispiel werden ein Buch aus dem Dokument sowie alle Leerzeichen entfernt, die unmittelbar vor dem Buchknoten angezeigt werden.
public void deleteBook(XmlNode book)
{
XmlNode prevNode = book.PreviousSibling;
book.OwnerDocument.DocumentElement.RemoveChild(book);
if (prevNode.NodeType == XmlNodeType.Whitespace ||
prevNode.NodeType == XmlNodeType.SignificantWhitespace)
{
prevNode.OwnerDocument.DocumentElement.RemoveChild(prevNode);
}
}
Public Sub deleteBook(ByVal book As XmlNode)
Dim prevNode As XmlNode = book.PreviousSibling
book.OwnerDocument.DocumentElement.RemoveChild(book)
If ((prevNode.NodeType = XmlNodeType.Whitespace) _
OrElse (prevNode.NodeType = XmlNodeType.SignificantWhitespace)) Then
prevNode.OwnerDocument.DocumentElement.RemoveChild(prevNode)
End If
End Sub
Weitere Informationen finden Sie unter Entfernen von Knoten, Inhalten und Werten aus einem XML-Dokument.
Positionieren von Knoten
Sie können auswählen, wo ein Knoten in Ihrem Dokument angezeigt werden soll, indem Sie die InsertBefore Methoden verwenden InsertAfter .
Dieses Beispiel zeigt zwei Hilfsmethoden. Einer von ihnen verschiebt einen Knoten in einer Liste höher. Die andere verschiebt einen Knoten nach unten.
Diese Methoden können in einer Anwendung verwendet werden, mit der Benutzer Bücher in einer Liste von Büchern nach oben und unten verschieben können. Wenn ein Benutzer ein Buch auswäht und eine Schaltfläche nach oben oder unten drückt, kann Ihr Code Methoden wie diese aufrufen, um den entsprechenden Buchknoten vor oder nach anderen Buchknoten zu positionieren.
//************************************************************************************
//
// Summary: Move elements up in the XML.
//
//
//************************************************************************************
public void MoveElementUp(XmlNode book)
{
XmlNode previousNode = book.PreviousSibling;
while (previousNode != null && (previousNode.NodeType != XmlNodeType.Element))
{
previousNode = previousNode.PreviousSibling;
}
if (previousNode != null)
{
XmlNode newLineNode = book.NextSibling;
book.OwnerDocument.DocumentElement.RemoveChild(book);
if (newLineNode.NodeType == XmlNodeType.Whitespace |
newLineNode.NodeType == XmlNodeType.SignificantWhitespace)
{
newLineNode.OwnerDocument.DocumentElement.RemoveChild(newLineNode);
}
InsertBookElement((XmlElement)book, Constants.positionAbove,
previousNode, false, false);
}
}
//************************************************************************************
//
// Summary: Move elements down in the XML.
//
//
//************************************************************************************
public void MoveElementDown(XmlNode book)
{
// Walk backwards until we find an element - ignore text nodes
XmlNode NextNode = book.NextSibling;
while (NextNode != null && (NextNode.NodeType != XmlNodeType.Element))
{
NextNode = NextNode.NextSibling;
}
if (NextNode != null)
{
XmlNode newLineNode = book.PreviousSibling;
book.OwnerDocument.DocumentElement.RemoveChild(book);
if (newLineNode.NodeType == XmlNodeType.Whitespace |
newLineNode.NodeType == XmlNodeType.SignificantWhitespace)
{
newLineNode.OwnerDocument.DocumentElement.RemoveChild(newLineNode);
}
InsertBookElement((XmlElement)book, Constants.positionBelow,
NextNode, false, false);
}
}
'************************************************************************************
'
' Summary: Move elements up in the XML.
'
'
'************************************************************************************
Public Sub MoveElementUp(ByVal book As XmlNode)
Dim previousNode As XmlNode = book.PreviousSibling
While ((Not (previousNode) Is Nothing) _
AndAlso (previousNode.NodeType <> XmlNodeType.Element))
previousNode = previousNode.PreviousSibling
End While
If (Not (previousNode) Is Nothing) Then
Dim newLineNode As XmlNode = book.NextSibling
book.OwnerDocument.DocumentElement.RemoveChild(book)
If ((newLineNode.NodeType = XmlNodeType.Whitespace) _
Or (newLineNode.NodeType = XmlNodeType.SignificantWhitespace)) Then
newLineNode.OwnerDocument.DocumentElement.RemoveChild(newLineNode)
End If
InsertBookElement(CType(book, XmlElement), Constants.positionAbove,
previousNode, False, False)
End If
End Sub
'************************************************************************************
'
' Summary: Move elements down in the XML.
'
'
'************************************************************************************
Public Sub MoveElementDown(ByVal book As XmlNode)
' Walk backwards until we find an element - ignore text nodes
Dim NextNode As XmlNode = book.NextSibling
While ((Not (NextNode) Is Nothing) _
AndAlso (NextNode.NodeType <> XmlNodeType.Element))
NextNode = NextNode.NextSibling
End While
If (Not (NextNode) Is Nothing) Then
Dim newLineNode As XmlNode = book.PreviousSibling
book.OwnerDocument.DocumentElement.RemoveChild(book)
If ((newLineNode.NodeType = XmlNodeType.Whitespace) _
Or (newLineNode.NodeType = XmlNodeType.SignificantWhitespace)) Then
newLineNode.OwnerDocument.DocumentElement.RemoveChild(newLineNode)
End If
InsertBookElement(CType(book, XmlElement), Constants.positionBelow,
NextNode, False, False)
End If
End Sub
Konstruktoren
| Name | Beschreibung |
|---|---|
| XmlDocument() |
Initialisiert eine neue Instanz der XmlDocument-Klasse. |
| XmlDocument(XmlImplementation) |
Initialisiert eine neue Instanz der |
| XmlDocument(XmlNameTable) |
Initialisiert eine neue Instanz der |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Attributes |
Ruft ein XmlAttributeCollection , das die Attribute dieses Knotens enthält. (Geerbt von XmlNode) |
| BaseURI |
Ruft den Basis-URI des aktuellen Knotens ab. |
| ChildNodes |
Ruft alle untergeordneten Knoten des Knotens ab. (Geerbt von XmlNode) |
| DocumentElement |
Ruft den Stamm XmlElement für das Dokument ab. |
| DocumentType |
Ruft den Knoten ab, der die DOCTYPE-Deklaration enthält. |
| FirstChild |
Ruft das erste untergeordnete Element des Knotens ab. (Geerbt von XmlNode) |
| HasChildNodes |
Ruft einen Wert ab, der angibt, ob dieser Knoten über untergeordnete Knoten verfügt. (Geerbt von XmlNode) |
| Implementation |
Ruft das XmlImplementation Objekt für das aktuelle Dokument ab. |
| InnerText |
Löst in allen Fällen ein InvalidOperationException . |
| InnerText |
Dient zum Abrufen oder Festlegen der verketteten Werte des Knotens und aller untergeordneten Knoten. (Geerbt von XmlNode) |
| InnerXml |
Dient zum Abrufen oder Festlegen des Markups, das die untergeordneten Elemente des aktuellen Knotens darstellt. |
| IsReadOnly |
Ruft einen Wert ab, der angibt, ob der aktuelle Knoten schreibgeschützt ist. |
| Item[String, String] |
Ruft das erste untergeordnete Element mit dem angegebenen LocalName und NamespaceURI. (Geerbt von XmlNode) |
| Item[String] |
Ruft das erste untergeordnete Element mit dem angegebenen Nameab. (Geerbt von XmlNode) |
| LastChild |
Ruft das letzte untergeordnete Element des Knotens ab. (Geerbt von XmlNode) |
| LocalName |
Ruft den lokalen Namen des Knotens ab. |
| Name |
Ruft den qualifizierten Namen des Knotens ab. |
| NamespaceURI |
Ruft den Namespace-URI dieses Knotens ab. (Geerbt von XmlNode) |
| NameTable |
Ruft die XmlNameTable zugeordnete Implementierung ab. |
| NextSibling |
Ruft den Knoten unmittelbar nach diesem Knoten ab. (Geerbt von XmlNode) |
| NodeType |
Ruft den Typ des aktuellen Knotens ab. |
| OuterXml |
Ruft das Markup ab, das diesen Knoten und alle untergeordneten Knoten enthält. (Geerbt von XmlNode) |
| OwnerDocument |
Ruft den XmlDocument Knoten ab, zu dem der aktuelle Knoten gehört. |
| ParentNode |
Ruft den übergeordneten Knoten dieses Knotens ab (für Knoten, die über übergeordnete Knoten verfügen können). |
| ParentNode |
Ruft das übergeordnete Element dieses Knotens ab (für Knoten, die über übergeordnete Elemente verfügen können). (Geerbt von XmlNode) |
| Prefix |
Ruft ab oder legt das Namespacepräfix dieses Knotens fest. (Geerbt von XmlNode) |
| PreserveWhitespace |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob Leerraum im Elementinhalt beibehalten werden soll. |
| PreviousSibling |
Ruft den Knoten unmittelbar vor diesem Knoten ab. (Geerbt von XmlNode) |
| PreviousText |
Ruft den Textknoten ab, der unmittelbar vor diesem Knoten steht. (Geerbt von XmlNode) |
| SchemaInfo |
Gibt den Post-Schema-Validation-Infoset (PSVI) des Knotens zurück. |
| Schemas |
Dient zum Abrufen oder Festlegen des Objekts, das XmlSchemaSet diesem XmlDocumentzugeordnet ist. |
| Value |
Dient zum Abrufen oder Festlegen des Werts des Knotens. (Geerbt von XmlNode) |
| XmlResolver |
Legt den Wert fest, der XmlResolver zum Auflösen externer Ressourcen verwendet werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| AppendChild(XmlNode) |
Fügt den angegebenen Knoten am Ende der Liste der untergeordneten Knoten dieses Knotens hinzu. (Geerbt von XmlNode) |
| Clone() |
Erstellt ein Duplikat dieses Knotens. (Geerbt von XmlNode) |
| CloneNode(Boolean) |
Erstellt ein Duplikat dieses Knotens. |
| CreateAttribute(String, String, String) |
Erstellt eine XmlAttribute mit dem angegebenen Prefix, LocalName, und NamespaceURI. |
| CreateAttribute(String, String) |
Erstellt einen XmlAttribute mit dem angegebenen qualifizierten Namen und NamespaceURI. |
| CreateAttribute(String) |
Erstellt eine XmlAttribute mit der angegebenen Name. |
| CreateCDataSection(String) |
Erstellt eine XmlCDataSection mit den angegebenen Daten enthaltende Daten. |
| CreateComment(String) |
Erstellt eine XmlComment mit den angegebenen Daten enthaltende Daten. |
| CreateDefaultAttribute(String, String, String) |
Erstellt ein Standardatribut mit dem angegebenen Präfix, dem lokalen Namen und dem Namespace-URI. |
| CreateDocumentFragment() |
Erstellt ein XmlDocumentFragment. |
| CreateDocumentType(String, String, String, String) |
Gibt ein neues XmlDocumentType Objekt zurück. |
| CreateElement(String, String, String) |
Erstellt ein Element mit dem angegebenen Prefix, LocalName, und NamespaceURI. |
| CreateElement(String, String) |
Erstellt einen XmlElement mit dem qualifizierten Namen und NamespaceURI. |
| CreateElement(String) |
Erstellt ein Element mit dem angegebenen Namen. |
| CreateEntityReference(String) |
Erstellt einen XmlEntityReference mit dem angegebenen Namen. |
| CreateNavigator() |
Erstellt ein neues XPathNavigator Objekt zum Navigieren in diesem Dokument. |
| CreateNavigator() |
Erstellt einen XPathNavigator Zum Navigieren in diesem Objekt. (Geerbt von XmlNode) |
| CreateNavigator(XmlNode) |
Erstellt ein XPathNavigator Objekt zum Navigieren in diesem Dokument, das an der XmlNode angegebenen Position positioniert ist. |
| CreateNode(String, String, String) |
Erstellt einen XmlNode mit dem angegebenen Knotentyp, Nameund NamespaceURI. |
| CreateNode(XmlNodeType, String, String, String) |
Erstellt eine XmlNode mit dem angegebenen XmlNodeType, , Prefix, Name, und NamespaceURI. |
| CreateNode(XmlNodeType, String, String) |
Erstellt eine XmlNode mit dem angegebenen XmlNodeType, Name, und NamespaceURI. |
| CreateProcessingInstruction(String, String) |
Erstellt einen XmlProcessingInstruction mit dem angegebenen Namen und den angegebenen Daten. |
| CreateSignificantWhitespace(String) |
Erstellt einen XmlSignificantWhitespace Knoten. |
| CreateTextNode(String) |
Erstellt einen XmlText mit dem angegebenen Text. |
| CreateWhitespace(String) |
Erstellt einen XmlWhitespace Knoten. |
| CreateXmlDeclaration(String, String, String) |
Erstellt einen XmlDeclaration Knoten mit den angegebenen Werten. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetElementById(String) |
Ruft die XmlElement mit der angegebenen ID ab. |
| GetElementsByTagName(String, String) |
Gibt eine XmlNodeList Liste aller untergeordneten Elemente zurück, die mit dem angegebenen LocalName und NamespaceURI. |
| GetElementsByTagName(String) |
Gibt eine XmlNodeList Liste aller untergeordneten Elemente zurück, die mit dem angegebenen Element Nameübereinstimmen. |
| GetEnumerator() |
Ruft einen Enumerator ab, der die untergeordneten Knoten im aktuellen Knoten durchläuft. (Geerbt von XmlNode) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetNamespaceOfPrefix(String) |
Sucht nach der nächstgelegenen XMLns-Deklaration für das angegebene Präfix, das sich im Bereich für den aktuellen Knoten befindet, und gibt den Namespace-URI in der Deklaration zurück. (Geerbt von XmlNode) |
| GetPrefixOfNamespace(String) |
Sucht nach der nächstgelegenen XMLns-Deklaration für den angegebenen Namespace-URI, der sich im Bereich für den aktuellen Knoten befindet, und gibt das in dieser Deklaration definierte Präfix zurück. (Geerbt von XmlNode) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| ImportNode(XmlNode, Boolean) |
Importiert einen Knoten aus einem anderen Dokument in das aktuelle Dokument. |
| InsertAfter(XmlNode, XmlNode) |
Fügt den angegebenen Knoten unmittelbar nach dem angegebenen Verweisknoten ein. (Geerbt von XmlNode) |
| InsertBefore(XmlNode, XmlNode) |
Fügt den angegebenen Knoten unmittelbar vor dem angegebenen Verweisknoten ein. (Geerbt von XmlNode) |
| Load(Stream) |
Lädt das XML-Dokument aus dem angegebenen Datenstrom. |
| Load(String) |
Lädt das XML-Dokument aus der angegebenen URL. |
| Load(TextReader) |
Lädt das XML-Dokument aus dem angegebenen TextReader. |
| Load(XmlReader) |
Lädt das XML-Dokument aus dem angegebenen XmlReader. |
| LoadXml(String) |
Lädt das XML-Dokument aus der angegebenen Zeichenfolge. |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| Normalize() |
Fügt alle XmlText-Knoten in der vollständigen Tiefe der Unterstruktur unter diesem XmlNode in ein "normales" Formular ein, in dem nur Markup (d. h. Tags, Kommentare, Verarbeitungsanweisungen, CDATA-Abschnitte und Entitätsverweise) xmlText-Knoten getrennt werden, d. h., es gibt keine angrenzenden XmlText-Knoten. (Geerbt von XmlNode) |
| PrependChild(XmlNode) |
Fügt den angegebenen Knoten am Anfang der Liste der untergeordneten Knoten für diesen Knoten hinzu. (Geerbt von XmlNode) |
| ReadNode(XmlReader) |
Erstellt ein XmlNode Objekt basierend auf den Informationen in der XmlReader. Der Leser muss auf einem Knoten oder Attribut positioniert werden. |
| RemoveAll() |
Entfernt alle untergeordneten Knoten und/oder Attribute des aktuellen Knotens. (Geerbt von XmlNode) |
| RemoveChild(XmlNode) |
Entfernt den angegebenen untergeordneten Knoten. (Geerbt von XmlNode) |
| ReplaceChild(XmlNode, XmlNode) |
Ersetzt den untergeordneten Knoten |
| Save(Stream) |
Speichert das XML-Dokument im angegebenen Datenstrom. |
| Save(String) |
Speichert das XML-Dokument in der angegebenen Datei. Wenn die angegebene Datei vorhanden ist, überschreibt diese Methode sie. |
| Save(TextWriter) |
Speichert das XML-Dokument im angegebenen TextWriter. |
| Save(XmlWriter) |
Speichert das XML-Dokument im angegebenen XmlWriter. |
| SelectNodes(String, XmlNamespaceManager) |
Wählt eine Liste der Knoten aus, die dem XPath-Ausdruck entsprechen. Alle Präfixe, die im XPath-Ausdruck gefunden werden, werden mithilfe der bereitgestellten XmlNamespaceManageraufgelöst. (Geerbt von XmlNode) |
| SelectNodes(String) |
Wählt eine Liste der Knoten aus, die dem XPath-Ausdruck entsprechen. (Geerbt von XmlNode) |
| SelectSingleNode(String, XmlNamespaceManager) |
Wählt den ersten |
| SelectSingleNode(String) |
Wählt den ersten |
| Supports(String, String) |
Testet, ob die DOM-Implementierung ein bestimmtes Feature implementiert. (Geerbt von XmlNode) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
| Validate(ValidationEventHandler, XmlNode) |
Überprüft das XmlNode in der Schemas Eigenschaft angegebene Objekt anhand der XSD-Schemaschemas (XML Schema Definition Language). |
| Validate(ValidationEventHandler) |
Überprüft die XmlDocument Xml-Schemadefinitionssprache (XSD)-Schemas, die in der Schemas Eigenschaft enthalten sind. |
| WriteContentTo(XmlWriter) |
Speichert alle untergeordneten Elemente des |
| WriteTo(XmlWriter) |
Speichert den |
Ereignisse
| Name | Beschreibung |
|---|---|
| NodeChanged |
Tritt auf, wenn der knoten, der Value zu diesem Dokument gehört, geändert wurde. |
| NodeChanging |
Tritt auf, wenn der knoten, der Value zu diesem Dokument gehört, gerade geändert werden soll. |
| NodeInserted |
Tritt auf, wenn ein Knoten, der zu diesem Dokument gehört, in einen anderen Knoten eingefügt wurde. |
| NodeInserting |
Tritt auf, wenn ein Knoten, der zu diesem Dokument gehört, in einen anderen Knoten eingefügt werden soll. |
| NodeRemoved |
Tritt auf, wenn ein Knoten, der zu diesem Dokument gehört, aus seinem übergeordneten Element entfernt wurde. |
| NodeRemoving |
Tritt auf, wenn ein Knoten, der zu diesem Dokument gehört, aus dem Dokument entfernt werden soll. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| ICloneable.Clone() |
Eine Beschreibung dieses Mitglieds finden Sie unter Clone(). (Geerbt von XmlNode) |
| IEnumerable.GetEnumerator() |
Eine Beschreibung dieses Mitglieds finden Sie unter GetEnumerator(). (Geerbt von XmlNode) |
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| AsParallel(IEnumerable) |
Aktiviert die Parallelisierung einer Abfrage. |
| AsQueryable(IEnumerable) |
Wandelt eine IEnumerable in eine IQueryableum. |
| Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um. |
| CreateNavigator(XmlDocument, XmlNode) |
Erstellt ein XPath Navigator -Objekt zum Navigieren des angegebenen Dokuments auf dem angegebenen Knoten. |
| CreateNavigator(XmlDocument) |
Erstellt ein neues XPath Navigator -Objekt zum Navigieren im angegebenen Dokument. |
| CreateNavigator(XmlNode) |
Erstellt einen XPath-Navigator zum Navigieren im angegebenen Knoten. |
| OfType<TResult>(IEnumerable) |
Filtert die Elemente einer IEnumerable basierend auf einem angegebenen Typ. |
| SelectNodes(XmlNode, String, XmlNamespaceManager) |
Wählt eine Liste der Knoten aus, die dem angegebenen XPath-Ausdruck entsprechen. Alle Im XPath-Ausdruck gefundenen Präfixe werden mithilfe des angegebenen Namespace-Managers aufgelöst. |
| SelectNodes(XmlNode, String) |
Wählt eine Liste der Knoten aus, die dem angegebenen XPath-Ausdruck entsprechen. |
| SelectSingleNode(XmlNode, String, XmlNamespaceManager) |
Wählt den ersten Knoten aus, der dem XPath-Ausdruck entspricht. Alle Im XPath-Ausdruck gefundenen Präfixe werden mithilfe des angegebenen Namespace-Managers aufgelöst. |
| SelectSingleNode(XmlNode, String) |
Wählt den ersten Knoten aus, der dem XPath-Ausdruck entspricht. |
| ToXPathNavigable(XmlNode) |
Erstellt eine IXPathNavigable Instanz, die zum Erstellen von Navigatoren verwendet wird. |