XDocument.Load Metodo
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Crea un nuovo oggetto XDocument da un file specificato da un URI, da un oggetto TextReader o da un oggetto XmlReader.
Load(Stream) |
Crea una nuova istanza di XDocument usando il flusso specificato. |
Load(TextReader) |
Crea un nuovo oggetto XDocument da un oggetto TextReader. |
Load(String) |
Crea un oggetto XDocument nuovo da un file. |
Load(XmlReader) | |
Load(Stream, LoadOptions) |
Crea una nuova istanza di XDocument usando il flusso specificato, conservando facoltativamente lo spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga. |
Load(TextReader, LoadOptions) |
Crea un XDocument nuovo da un oggetto TextReader, conservando facoltativamente spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga. |
Load(String, LoadOptions) |
Crea un XDocument nuovo da un file, conservando facoltativamente spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga. |
Load(XmlReader, LoadOptions) |
Carica un XDocument da un XmlReader, impostando facoltativamente l'URI di base e mantenendo le informazioni sulla riga. |
Usando uno degli overload di questo metodo, è possibile caricare un XDocument oggetto da un file, un TextReaderoggetto o un XmlReaderoggetto .
Per creare un oggetto XDocument da una stringa contenente XML, usare Parse.
Load(Stream)
Crea una nuova istanza di XDocument usando il flusso specificato.
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
Parametri
- stream
- Stream
Flusso che contiene i dati XML.
Restituisce
Oggetto XDocument che legge i dati contenuti nel flusso.
Commenti
Se si desidera controllare le opzioni di carico, usare l'overload Load che accetta LoadOptions come parametro.
La funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile rilevare eventuali eccezioni generate dai metodi di overload e dai XmlReader.Create XmlReader metodi che legge e analizzano il documento.
Se è necessario modificare XmlReaderSettings, seguire questa procedura:
Creare un oggetto XmlReader chiamando uno degli Create overload che accettano XmlReaderSettings come parametro.
Passare a XmlReader uno degli Load overload di XDocument che accetta XmlReader come parametro.
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(TextReader)
Crea un nuovo oggetto XDocument da un oggetto 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
Parametri
- textReader
- TextReader
TextReader che comprende il contenuto dell'oggetto XDocument.
Restituisce
XDocument che comprende i contenuti dell'oggetto TextReader specificato.
Esempio
Nell'esempio seguente viene creato un documento da un oggetto 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)
Nell'esempio viene prodotto l'output seguente:
<Root>Content</Root>
Commenti
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
- Parse
- Save
- WriteTo(XmlWriter)
- Panoramica di LINQ to XML
- Differenze tra query per XDocument e query per XElement
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(String)
Crea un oggetto XDocument nuovo da un file.
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
Parametri
Restituisce
Oggetto XDocument che include il contenuto del file specificato.
Esempio
Nell'esempio seguente viene illustrato come caricare un XDocument oggetto da un file.
Nell'esempio viene usato il documento XML seguente:
File XML di esempio: tipico ordine di acquisto (LINQ to XML)
XDocument doc = XDocument.Load("PurchaseOrder.xml");
Console.WriteLine(doc);
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")
Console.WriteLine(doc)
Nell'esempio viene prodotto l'output seguente:
<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>
Commenti
Questo metodo usa un oggetto sottostante XmlReader per leggere il codice XML in un albero XML.
Utilizzare Parse per creare un XDocument oggetto da una stringa contenente XML.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
- Parse
- Save
- WriteTo(XmlWriter)
- Panoramica di LINQ to XML
- Differenze tra query per XDocument e query per XElement
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(XmlReader)
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
Parametri
Restituisce
XDocument che comprende i contenuti dell'oggetto XmlReader specificato.
Esempio
L'esempio seguente crea un documento DOM, crea un XmlNodeReader oggetto dal documento DOM, crea un XDocument oggetto utilizzando .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
Nell'esempio viene prodotto l'output seguente:
<Root>
<Child>child contents</Child>
</Root>
Commenti
Un possibile uso per questo metodo consiste nel creare una copia di un documento DOM in un albero di LINQ to XML. A tale scopo, creare un XmlNodeReader oggetto da un documento DOM e quindi usare per XmlNodeReader creare un oggetto XDocument.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
- Parse
- Save
- WriteTo(XmlWriter)
- Panoramica di LINQ to XML
- Differenze tra query per XDocument e query per XElement
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(Stream, LoadOptions)
Crea una nuova istanza di XDocument usando il flusso specificato, conservando facoltativamente lo spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga.
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
Parametri
- stream
- Stream
Flusso contenente i dati XML.
- options
- LoadOptions
LoadOptions che specifica il caricamento dell'URI di base e delle informazioni sulla riga.
Restituisce
Oggetto XDocument che legge i dati contenuti nel flusso.
Commenti
La funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Se è necessario modificare XmlReaderSettings, seguire questa procedura:
Creare un oggetto XmlReader chiamando uno degli Create overload che accetta XmlReaderSettings come parametro.
Passare a XmlReader uno degli Load overload di XDocument che accetta XmlReader come parametro .
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(TextReader, LoadOptions)
Crea un XDocument nuovo da un oggetto TextReader, conservando facoltativamente spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga.
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
Parametri
- textReader
- TextReader
TextReader che comprende il contenuto dell'oggetto XDocument.
- options
- LoadOptions
Oggetto LoadOptions che specifica il comportamento dello spazio vuoto e se caricare l'URI di base e le informazioni sulla riga.
Restituisce
Oggetto XDocument contenente il codice XML letto dall'oggetto TextReader specificato.
Esempio
Nell'esempio seguente viene creato un documento da un oggetto 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)
Nell'esempio viene prodotto l'output seguente:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
Commenti
Se il codice XML di origine è rientrato, l'impostazione del PreserveWhitespace flag in options
determina la lettura di tutti gli spazi vuoti nel codice XML di origine. I nodi di tipo XText vengono creati per spazi vuoti significativi e insignificanti.
Se il codice XML di origine è rientrato, non impostando il PreserveWhitespace flag in options
, il lettore ignora tutti gli spazi vuoti non significativi nel codice XML di origine. L'albero XML viene creato senza nodi di testo per spazi vuoti non significativi.
Se il codice XML di origine non è rientrato, l'impostazione del PreserveWhitespace flag in options
non ha alcun effetto. Gli spazi vuoti significativi vengono ancora mantenuti e non sono presenti intervalli di spazi vuoti insignificanti che potrebbero causare la creazione di più nodi di testo di spazio vuoto.
Per altre informazioni, vedere Mantenere lo spazio vuoto durante il caricamento o l'analisi di XML e Mantenere lo spazio vuoto durante la serializzazione.
Utilizzare Parse per creare un XElement oggetto da una stringa contenente XML.
L'impostazione SetBaseUri non è valida durante il caricamento da un oggetto TextReader.
Se si imposta il flag, si verifica una penalità per le SetLineInfo prestazioni.
Le informazioni sulla riga sono accurate immediatamente dopo il caricamento del documento XML. Se si modifica l'albero XML dopo il caricamento del documento, le informazioni sulla riga potrebbero diventare senza significato.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
- Parse
- Save
- WriteTo(XmlWriter)
- Panoramica di LINQ to XML
- Differenze tra query per XDocument e query per XElement
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(String, LoadOptions)
Crea un XDocument nuovo da un file, conservando facoltativamente spazio vuoto, impostando l'URI di base e mantenendo le informazioni sulla riga.
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
Parametri
- options
- LoadOptions
Oggetto LoadOptions che specifica il comportamento dello spazio vuoto e se caricare l'URI di base e le informazioni sulla riga.
Restituisce
Oggetto XDocument che include il contenuto del file specificato.
Esempio
Nell'esempio seguente viene illustrato come caricare un XDocument oggetto da un file.
Nell'esempio viene usato il documento XML seguente:
File XML di esempio: tipico ordine di acquisto (LINQ to 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())
Nell'esempio viene prodotto l'output seguente:
nodes if not preserving whitespace: 48
nodes if preserving whitespace: 82
Commenti
Se il codice XML di origine è rientrato, l'impostazione del PreserveWhitespace flag in options
determina la lettura di tutti gli spazi vuoti nel codice XML di origine. I nodi di tipo XText vengono creati per spazi vuoti significativi e insignificanti.
Se il codice XML di origine è rientrato, non impostando il PreserveWhitespace flag in options
, il lettore ignora tutti gli spazi vuoti non significativi nel codice XML di origine. L'albero XML viene creato senza nodi di testo per spazi vuoti non significativi.
Se il codice XML di origine non è rientrato, l'impostazione del PreserveWhitespace flag in options
non ha alcun effetto. Gli spazi vuoti significativi vengono ancora mantenuti e non sono presenti intervalli di spazi vuoti insignificanti che potrebbero causare la creazione di più nodi di testo di spazio vuoto.
Per altre informazioni, vedere Mantenere lo spazio vuoto durante il caricamento o l'analisi di XML e Mantenere lo spazio vuoto durante la serializzazione.
Utilizzare Parse per creare un XDocument oggetto da una stringa contenente XML.
Se si impostano e i flag e si verifica una penalità per le SetBaseUri SetLineInfo prestazioni.
L'URI di base e le informazioni sulla riga sono accurati immediatamente dopo il caricamento del documento XML. Se si modifica l'albero XML dopo il caricamento del documento, l'URI di base e le informazioni sulla riga potrebbero diventare senza significato.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile intercettare eventuali eccezioni generate dai XmlReader.Create metodi di overload e dai XmlReader metodi che leggono e analizzano il documento.
Vedi anche
- Parse
- Save
- WriteTo(XmlWriter)
- Panoramica di LINQ to XML
- Differenze tra query per XDocument e query per XElement
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Load(XmlReader, LoadOptions)
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
Parametri
- options
- LoadOptions
LoadOptions che specifica il caricamento dell'URI di base e delle informazioni sulla riga.
Restituisce
Oggetto XDocument contenente il codice XML letto dall'oggetto XmlReader specificato.
Esempio
Nell'esempio XmlReaderseguente vengono caricate le informazioni sulla riga caricate da . Stampa quindi le informazioni sulla riga.
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
Nell'esempio viene prodotto l'output seguente:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Commenti
Creando un XmlNodeReader oggetto da un documento DOM e quindi utilizzando per XmlNodeReader creare un XElementoggetto , questo metodo può essere usato per creare una copia di un documento DOM in un albero LINQ to XML.
Utilizzare Parse per creare un XDocument oggetto da una stringa contenente XML.
L'impostazione PreserveWhitespace non è valida durante il caricamento da un oggetto XmlReader. L'oggetto XmlReader verrà configurato in modo da leggere o meno spazi vuoti. L'albero LINQ to XML verrà popolato con i nodi degli spazi vuoti che il lettore espone. Questo sarà il comportamento indipendentemente dal fatto che PreserveWhitespace sia impostato o meno.
XmlReader Può avere o meno un URI di base valido. Se si imposta SetBaseUri, l'URI di base verrà impostato nell'albero XML dall'URI di base segnalato da XmlReader.
L'oggetto XmlReader può avere o meno informazioni sulla riga valide. Se si imposta SetLineInfo, le informazioni sulla riga verranno impostate nell'albero XML dalle informazioni sulla riga segnalate XmlReaderda .
Se si imposta il flag, si verifica una penalità per le SetLineInfo prestazioni.
Le informazioni sulla riga sono accurate immediatamente dopo il caricamento del documento XML. Se si modifica l'albero XML dopo il caricamento del documento, le informazioni sulla riga potrebbero diventare senza significato.
la funzionalità di caricamento di LINQ to XML è basata su XmlReader. Pertanto, è possibile rilevare eventuali eccezioni generate dai metodi di overload e dai XmlReader.Create XmlReader metodi che legge e analizzano il documento.
Vedi anche
- WriteTo(XmlWriter)
- Save
- Parse
- Panoramica di LINQ to XML
- Come leggere e scrivere un documento codificato
Si applica a
.NET 7 e altre versioni
Prodotto | Versioni |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |