XDocument.Load Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee maakt u een nieuw XDocument bestand op basis van een URI, van een TextReaderof van een XmlReader.
Overloads
| Name | Description |
|---|---|
| Load(Stream) |
Hiermee maakt u een nieuw XDocument exemplaar met behulp van de opgegeven stream. |
| Load(TextReader) |
Hiermee maakt u een nieuwe XDocument op basis van een TextReader. |
| Load(String) |
Hiermee maakt u een nieuw XDocument bestand op basis van een bestand. |
| Load(XmlReader) |
Hiermee maakt u een nieuwe XDocument op basis van een XmlReader. |
| Load(Stream, LoadOptions) |
Hiermee maakt u een nieuw XDocument exemplaar met behulp van de opgegeven stroom, eventueel witruimte behouden, de basis-URI instellen en regelgegevens behouden. |
| Load(TextReader, LoadOptions) |
Hiermee maakt u een nieuwe XDocument op basis van een TextReader, optioneel behoudende witruimte, stelt u de basis-URI in en behoudt u regelgegevens. |
| Load(String, LoadOptions) |
Hiermee maakt u een nieuw XDocument bestand, eventueel witruimte behouden, de basis-URI instellen en regelgegevens behouden. |
| Load(XmlReader, LoadOptions) |
Laadt een XDocument van een XmlReader, eventueel instellen van de basis-URI en het behouden van regelgegevens. |
Opmerkingen
Met behulp van een van de overbelastingen van deze methode kunt u een XDocument bestand, een TextReaderof een bestand XmlReaderladen.
Als u een XDocument tekenreeks wilt maken die XML bevat, gebruikt u Parse.
Load(Stream)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuw XDocument exemplaar met behulp van de opgegeven stream.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream);
public static System.Xml.Linq.XDocument Load(System.IO.Stream stream);
static member Load : System.IO.Stream -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream) As XDocument
Parameters
- stream
- Stream
De stroom die de XML-gegevens bevat.
Retouren
Een XDocument object dat de gegevens leest die zich in de stroom bevinden.
Opmerkingen
Als u laadopties wilt beheren, gebruikt u de Load overbelasting die als parameter wordt gebruikt LoadOptions .
De laadfunctionaliteit van LINQ naar XML is gebaseerd.XmlReader Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Als u dit moet wijzigen XmlReaderSettings, voert u de volgende stappen uit:
Maak een XmlReader door een van de Create overbelastingen aan te roepen die als parameter worden gebruikt XmlReaderSettings .
Geef de XmlReader waarde door aan een van de Load overbelastingen die XDocument als parameter worden gebruikt XmlReader .
Van toepassing op
Load(TextReader)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuwe XDocument op basis van een TextReader.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader);
public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader);
static member Load : System.IO.TextReader -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader) As XDocument
Parameters
- textReader
- TextReader
Een TextReader met de inhoud voor de XDocument.
Retouren
Een XDocument met de inhoud van de opgegeven TextReader.
Voorbeelden
In het volgende voorbeeld wordt een document gemaakt op basis van een StringReader.
TextReader tr = new StringReader("<Root>Content</Root>");
XDocument doc = XDocument.Load(tr);
Console.WriteLine(doc);
Dim tr As TextReader = New StringReader("<Root>Content</Root>")
Dim doc As XDocument = XDocument.Load(tr)
Console.WriteLine(doc)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<Root>Content</Root>
Opmerkingen
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
- Parse
- Save
- WriteTo(XmlWriter)
- Overzicht van LINQ naar XML
- Een query uitvoeren op een XDocument versus een query uitvoeren op een XElement
Van toepassing op
Load(String)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuw XDocument bestand op basis van een bestand.
public:
static System::Xml::Linq::XDocument ^ Load(System::String ^ uri);
public static System.Xml.Linq.XDocument Load(string uri);
static member Load : string -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String) As XDocument
Parameters
- uri
- String
Een URI-tekenreeks die verwijst naar het bestand dat in een nieuw XDocumentbestand moet worden geladen.
Retouren
Een XDocument met de inhoud van het opgegeven bestand.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een XDocument bestand laadt.
In dit voorbeeld wordt het volgende XML-document gebruikt:
Voorbeeld-XML-bestand: Typische inkooporder (LINQ naar XML)
XDocument doc = XDocument.Load("PurchaseOrder.xml");
Console.WriteLine(doc);
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")
Console.WriteLine(doc)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
<Address Type="Shipping">
<Name>Ellen Adams</Name>
<Street>123 Maple Street</Street>
<City>Mill Valley</City>
<State>CA</State>
<Zip>10999</Zip>
<Country>USA</Country>
</Address>
<Address Type="Billing">
<Name>Tai Yee</Name>
<Street>8 Oak Avenue</Street>
<City>Old Town</City>
<State>PA</State>
<Zip>95819</Zip>
<Country>USA</Country>
</Address>
<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
<Items>
<Item PartNumber="872-AA">
<ProductName>Lawnmower</ProductName>
<Quantity>1</Quantity>
<USPrice>148.95</USPrice>
<Comment>Confirm this is electric</Comment>
</Item>
<Item PartNumber="926-AA">
<ProductName>Baby Monitor</ProductName>
<Quantity>2</Quantity>
<USPrice>39.98</USPrice>
<ShipDate>1999-05-21</ShipDate>
</Item>
</Items>
</PurchaseOrder>
Opmerkingen
Deze methode maakt gebruik van een onderliggende XmlReader waarde om de XML in een XML-structuur te lezen.
Hiermee Parse maakt u een XDocument tekenreeks die XML bevat.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
- Parse
- Save
- WriteTo(XmlWriter)
- Overzicht van LINQ naar XML
- Een query uitvoeren op een XDocument versus een query uitvoeren op een XElement
Van toepassing op
Load(XmlReader)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
public:
static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader);
public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader);
static member Load : System.Xml.XmlReader -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader) As XDocument
Parameters
Retouren
Een XDocument met de inhoud van de opgegeven XmlReader.
Voorbeelden
In het volgende voorbeeld wordt een DOM-document gemaakt, een XmlNodeReader van het DOM-document gemaakt, een XDocument document gemaakt met behulp van het XmlNodeReader.
// Create a DOM document with some content.
XmlDocument doc = new XmlDocument();
XmlElement child = doc.CreateElement("Child");
child.InnerText = "child contents";
XmlElement root = doc.CreateElement("Root");
root.AppendChild(child);
doc.AppendChild(root);
// create a reader and move to the content
using (XmlNodeReader nodeReader = new XmlNodeReader(doc)) {
// the reader must be in the Interactive state in order to
// create a LINQ to XML tree from it.
nodeReader.MoveToContent();
XDocument xRoot = XDocument.Load(nodeReader);
Console.WriteLine(xRoot);
}
' Create a DOM document with some content.
Dim doc As XmlDocument = New XmlDocument()
Dim child As XmlElement = doc.CreateElement("Child")
child.InnerText = "child contents"
Dim root As XmlElement = doc.CreateElement("Root")
root.AppendChild(child)
doc.AppendChild(root)
' create a reader and move to the content
Using nodeReader = New XmlNodeReader(doc)
' the reader must be in the Interactive state in order to
' create a LINQ to XML tree from it.
nodeReader.MoveToContent()
Dim xRoot As XDocument = XDocument.Load(nodeReader)
Console.WriteLine(xRoot)
End Using
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<Root>
<Child>child contents</Child>
</Root>
Opmerkingen
Een mogelijk gebruik voor deze methode is het maken van een kopie van een DOM-document in een LINQ naar xml-structuur. Hiervoor maakt u een XmlNodeReader van een DOM-document en gebruikt u vervolgens de XmlNodeReader opdracht om een XDocumentdocument te maken.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
- Parse
- Save
- WriteTo(XmlWriter)
- Overzicht van LINQ naar XML
- Een query uitvoeren op een XDocument versus een query uitvoeren op een XElement
Van toepassing op
Load(Stream, LoadOptions)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuw XDocument exemplaar met behulp van de opgegeven stroom, eventueel witruimte behouden, de basis-URI instellen en regelgegevens behouden.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.IO.Stream stream, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.Stream * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream, options As LoadOptions) As XDocument
Parameters
- stream
- Stream
De stroom met de XML-gegevens.
- options
- LoadOptions
Een LoadOptions die aangeeft of basis-URI en regelgegevens moeten worden geladen.
Retouren
Een XDocument object dat de gegevens leest die zich in de stroom bevinden.
Opmerkingen
De laadfunctionaliteit van LINQ naar XML is gebaseerd.XmlReader Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Als u dit moet wijzigen XmlReaderSettings, voert u de volgende stappen uit:
Maak een XmlReader door een van de Create overbelastingen aan te roepen die als parameter worden gebruikt XmlReaderSettings .
Geef de XmlReader waarde door aan een van de Load overbelastingen die XDocument als parameter worden gebruikt XmlReader .
Van toepassing op
Load(TextReader, LoadOptions)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuwe XDocument op basis van een TextReader, optioneel behoudende witruimte, stelt u de basis-URI in en behoudt u regelgegevens.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.TextReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader, options As LoadOptions) As XDocument
Parameters
- textReader
- TextReader
Een TextReader met de inhoud voor de XDocument.
- options
- LoadOptions
Een LoadOptions die het gedrag van de witruimte aangeeft en of basis-URI en regelgegevens moeten worden geladen.
Retouren
Een XDocument met de XML die is gelezen uit de opgegeven TextReader.
Voorbeelden
In het volgende voorbeeld wordt een document gemaakt op basis van een StringReader.
TextReader sr;
int whiteSpaceNodes;
sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree1 = XDocument.Load(sr, LoadOptions.None);
sr.Close();
whiteSpaceNodes = xmlTree1
.Element("Root")
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);
sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree2 = XDocument.Load(sr, LoadOptions.PreserveWhitespace);
sr.Close();
whiteSpaceNodes = xmlTree2
.Element("Root")
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);
Dim sr As TextReader
Dim whiteSpaceNodes As Integer
sr = New StringReader("<Root> <Child> </Child> </Root>")
Dim xmlTree1 As XDocument = XDocument.Load(sr, LoadOptions.None)
sr.Close()
whiteSpaceNodes = xmlTree1 _
.Element("Root") _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode. _
ToString().Trim().Length = 0).Count()
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)
sr = New StringReader("<Root> <Child> </Child> </Root>")
Dim xmlTree2 As XDocument = XDocument.Load(sr, LoadOptions.PreserveWhitespace)
sr.Close()
whiteSpaceNodes = xmlTree2 _
.Element("Root") _
.DescendantNodesAndSelf() _
.OfType(Of XText)() _
.Where(Function(ByVal tNode As XNode) tNode. _
ToString().Trim().Length = 0).Count()
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
Opmerkingen
Als de bron-XML is ingesprongen, zorgt het instellen van de PreserveWhitespace vlag options ervoor dat de lezer alle witruimte in de bron-XML leest. Knooppunten van het type XText worden gemaakt voor zowel significante als onbelangrijke witruimte.
Als de bron-XML is ingesprongen, hoeft u de PreserveWhitespace vlag niet in options te stellen, waardoor de lezer alle onbelangrijke witruimte in de bron-XML negeert. De XML-structuur wordt gemaakt zonder tekstknooppunten voor onbeduidende witruimte.
Als de bron-XML niet is ingesprongen, heeft het instellen van de PreserveWhitespace vlag options geen effect. Er blijft nog steeds aanzienlijke witruimte behouden en er zijn geen onbelangrijke witruimte die kan leiden tot het maken van meer witruimtetekstknooppunten.
Zie Witruimte behouden tijdens het laden of parseren van XML en Witruimte behouden tijdens het serialiseren van witruimte voor meer informatie.
Hiermee Parse maakt u een XElement tekenreeks die XML bevat.
Instelling SetBaseUri is niet geldig bij het laden vanaf een TextReader.
Er is een prestatiestraf als u de SetLineInfo vlag instelt.
De regelgegevens zijn direct na het laden van het XML-document nauwkeurig. Als u de XML-structuur wijzigt nadat u het document hebt geladen, kan de regelinformatie betekenisloos worden.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
- Parse
- Save
- WriteTo(XmlWriter)
- Overzicht van LINQ naar XML
- Een query uitvoeren op een XDocument versus een query uitvoeren op een XElement
Van toepassing op
Load(String, LoadOptions)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
Hiermee maakt u een nieuw XDocument bestand, eventueel witruimte behouden, de basis-URI instellen en regelgegevens behouden.
public:
static System::Xml::Linq::XDocument ^ Load(System::String ^ uri, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(string uri, System.Xml.Linq.LoadOptions options);
static member Load : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String, options As LoadOptions) As XDocument
Parameters
- uri
- String
Een URI-tekenreeks die verwijst naar het bestand dat in een nieuw XDocumentbestand moet worden geladen.
- options
- LoadOptions
Een LoadOptions die het gedrag van de witruimte aangeeft en of basis-URI en regelgegevens moeten worden geladen.
Retouren
Een XDocument met de inhoud van het opgegeven bestand.
Voorbeelden
In het volgende voorbeeld ziet u hoe u een XDocument bestand laadt.
In dit voorbeeld wordt het volgende XML-document gebruikt:
Voorbeeld-XML-bestand: Typische inkooporder (LINQ naar XML)
XDocument doc1 = XDocument.Load("PurchaseOrder.xml", LoadOptions.None);
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count());
XDocument doc2 = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace);
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count());
Dim doc1 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.None)
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count())
Dim doc2 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace)
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count())
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
nodes if not preserving whitespace: 48
nodes if preserving whitespace: 82
Opmerkingen
Als de bron-XML is ingesprongen, zorgt het instellen van de PreserveWhitespace vlag options ervoor dat de lezer alle witruimte in de bron-XML leest. Knooppunten van het type XText worden gemaakt voor zowel significante als onbelangrijke witruimte.
Als de bron-XML is ingesprongen, hoeft u de PreserveWhitespace vlag niet in options te stellen, waardoor de lezer alle onbelangrijke witruimte in de bron-XML negeert. De XML-structuur wordt gemaakt zonder tekstknooppunten voor onbeduidende witruimte.
Als de bron-XML niet is ingesprongen, heeft het instellen van de PreserveWhitespace vlag options geen effect. Er blijft nog steeds aanzienlijke witruimte behouden en er zijn geen onbelangrijke witruimte die kan leiden tot het maken van meer witruimtetekstknooppunten.
Zie Witruimte behouden tijdens het laden of parseren van XML en Witruimte behouden tijdens het serialiseren van witruimte voor meer informatie.
Hiermee Parse maakt u een XDocument tekenreeks die XML bevat.
Er is een prestatiestraf als u de SetBaseUri en de SetLineInfo vlaggen instelt.
De basis-URI en de regelinformatie zijn direct na het laden van het XML-document nauwkeurig. Als u de XML-structuur wijzigt na het laden van het document, kunnen de basis-URI en regelinformatie betekenisloos worden.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
- Parse
- Save
- WriteTo(XmlWriter)
- Overzicht van LINQ naar XML
- Een query uitvoeren op een XDocument versus een query uitvoeren op een XElement
Van toepassing op
Load(XmlReader, LoadOptions)
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
- Bron:
- XDocument.cs
public:
static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options);
static member Load : System.Xml.XmlReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader, options As LoadOptions) As XDocument
Parameters
- options
- LoadOptions
Een LoadOptions die aangeeft of basis-URI en regelgegevens moeten worden geladen.
Retouren
Een XDocument met de XML die is gelezen uit de opgegeven XmlReader.
Voorbeelden
In het volgende voorbeeld worden de regelgegevens geladen die vanuit de XmlReaderregel worden geladen. Vervolgens worden de regelgegevens afgedrukt.
string markup =
@"<Root>
<Child>
<GrandChild/>
</Child>
</Root>";
// Create a reader and move to the content.
using (XmlReader nodeReader = XmlReader.Create(new StringReader(markup)))
{
// the reader must be in the Interactive state in order to
// Create a LINQ to XML tree from it.
nodeReader.MoveToContent();
XDocument xRoot = XDocument.Load(nodeReader, LoadOptions.SetLineInfo);
Console.WriteLine("{0}{1}{2}",
"Element Name".PadRight(20),
"Line".PadRight(5),
"Position");
Console.WriteLine("{0}{1}{2}",
"------------".PadRight(20),
"----".PadRight(5),
"--------");
foreach (XElement e in xRoot.Elements("Root").DescendantsAndSelf())
Console.WriteLine("{0}{1}{2}",
("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),
((IXmlLineInfo)e).LinePosition);
}
Dim markup As String = _
"<Root>" & Environment.NewLine & _
" <Child>" & Environment.NewLine & _
" <GrandChild/>" & Environment.NewLine & _
" </Child>" & Environment.NewLine & _
"</Root>"
' Create a reader and move to the content.
Using nodeReader As XmlReader = XmlReader.Create(New StringReader(markup))
' The reader must be in the Interactive state in order to
' create a LINQ to XML tree from it.
nodeReader.MoveToContent()
Dim xRoot As XDocument = XDocument.Load(nodeReader, LoadOptions.SetLineInfo)
Console.WriteLine("{0}{1}{2}", _
"Element Name".PadRight(20), _
"Line".PadRight(5), _
"Position")
Console.WriteLine("{0}{1}{2}", _
"------------".PadRight(20), _
"----".PadRight(5), _
"--------")
For Each e As XElement In xRoot.Elements("Root").DescendantsAndSelf()
Console.WriteLine("{0}{1}{2}", _
("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString()).PadRight(20), _
(DirectCast(e, IXmlLineInfo)).LineNumber.ToString().PadRight(5), _
(DirectCast(e, IXmlLineInfo)).LinePosition)
Next
End Using
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Opmerkingen
Door een XmlNodeReader van een DOM-document te maken en vervolgens de methode XmlNodeReader te gebruiken om een XElementDOM-document te maken, kan deze methode worden gebruikt om een kopie van een DOM-document in een LINQ naar xml-structuur te maken.
Hiermee Parse maakt u een XDocument tekenreeks die XML bevat.
Instelling PreserveWhitespace is niet geldig bij het laden vanaf een XmlReader. De XmlReader configuratie wordt geconfigureerd om witruimte te lezen of niet. De LINQ-naar-XML-structuur wordt gevuld met de witruimteknooppunten die door de lezer worden weergegeven. Dit is het gedrag, ongeacht of PreserveWhitespace deze is ingesteld of niet.
De XmlReader kan een geldige basis-URI hebben of niet. Als u instelt SetBaseUri, wordt de basis-URI ingesteld in de XML-structuur van de basis-URI die wordt gerapporteerd door de XmlReader.
De XmlReader regelgegevens zijn mogelijk geldig of niet. Als u deze optie instelt SetLineInfo, wordt de regelgegevens ingesteld in de XML-structuur van de lijngegevens die door de XmlReaderregel worden gerapporteerd.
Er is een prestatiestraf als u de SetLineInfo vlag instelt.
De regelgegevens zijn direct na het laden van het XML-document nauwkeurig. Als u de XML-structuur wijzigt nadat u het document hebt geladen, kan de regelinformatie betekenisloos worden.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.