XmlDocument.ReadNode(XmlReader) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
public:
virtual System::Xml::XmlNode ^ ReadNode(System::Xml::XmlReader ^ reader);
public virtual System.Xml.XmlNode ReadNode(System.Xml.XmlReader reader);
public virtual System.Xml.XmlNode? ReadNode(System.Xml.XmlReader reader);
abstract member ReadNode : System.Xml.XmlReader -> System.Xml.XmlNode
override this.ReadNode : System.Xml.XmlReader -> System.Xml.XmlNode
Public Overridable Function ReadNode (reader As XmlReader) As XmlNode
Parametrar
- reader
- XmlReader
XML-källan.
Returer
Den nya XmlNode eller null om det inte finns fler noder.
Undantag
Läsaren är placerad på en nodtyp som inte översätts till en giltig DOM-nod (till exempel EndElement eller EndEntity).
Exempel
I följande exempel används ReadNode för att skapa en ny nod och sedan infoga den nya noden i dokumentet.
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
//Create the XmlDocument.
XmlDocument doc = new XmlDocument();
doc.LoadXml("<bookstore>" +
"<book genre='novel' ISBN='1-861001-57-5'>" +
"<title>Pride And Prejudice</title>" +
"</book>" +
"</bookstore>");
//Create a reader.
XmlTextReader reader = new XmlTextReader("cd.xml");
reader.MoveToContent(); //Move to the cd element node.
//Create a node representing the cd element node.
XmlNode cd = doc.ReadNode(reader);
//Insert the new node into the document.
doc.DocumentElement.AppendChild(cd);
Console.WriteLine("Display the modified XML...");
doc.Save(Console.Out);
}
}
Option Explicit
Option Strict
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
'Create the XmlDocument.
Dim doc As New XmlDocument()
doc.LoadXml("<bookstore>" & _
"<book genre='novel' ISBN='1-861001-57-5'>" & _
"<title>Pride And Prejudice</title>" & _
"</book>" & _
"</bookstore>")
'Create a reader.
Dim reader As New XmlTextReader("cd.xml")
reader.MoveToContent() 'Move to the cd element node.
'Create a node representing the cd element node.
Dim cd As XmlNode = doc.ReadNode(reader)
'Insert the new node into the document.
doc.DocumentElement.AppendChild(cd)
Console.WriteLine("Display the modified XML...")
doc.Save(Console.Out)
End Sub
End Class
I exemplet används filen , cd.xmlsom indata.
<!-- sample CD -->
<cd genre='alternative'>
<title>Americana</title>
<artist>Offspring</artist>
</cd>
Kommentarer
Läser en XmlNode från den angivna läsaren och placerar läsaren på nästa nod. Den här metoden skapar den typ av XmlNode matchning NodeType som läsaren för närvarande är placerad på. (Om läsaren är i det inledande tillståndet går ReadNode läsaren vidare till den första noden och fungerar sedan på den noden.)
Om läsaren är placerad i början av ett element läser ReadNode alla attribut och eventuella underordnade noder, upp till och med sluttaggen för den aktuella noden. Den XmlNode returnerade innehåller underträdet som representerar allt som lästs. Läsaren placeras direkt efter sluttaggen.
ReadNode kan också läsa attribut, men i det här fallet avancerar det inte läsaren till nästa attribut. På så sätt kan du skriva följande C#-kod:
XmlDocument doc = new XmlDocument();
while (reader.MoveToNextAttribute())
{
XmlNode a = doc.ReadNode(reader);
// Do some more processing.
}
ReadNodeanvänder dock attributvärdet, vilket innebär att när ett attribut ReadNode anropas XmlReader.ReadAttributeValue returneras false.
Anteckningar till arvingar
Den här metoden har en arvsefterfrågan. Fullständigt förtroende krävs för att åsidosätta ReadNode metoden.
Den här metoden är ett Microsoft-tillägg till dokumentobjektmodellen (DOM).