XDocument.Load Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Cria um novo XDocument a partir de um ficheiro especificado por um URI, de um TextReader, ou de um XmlReader.
Sobrecargas
| Name | Description |
|---|---|
| Load(Stream) |
Cria uma nova XDocument instância usando o fluxo especificado. |
| Load(TextReader) |
Cria um novo XDocument a partir de um TextReader. |
| Load(String) |
Cria um novo XDocument a partir de um ficheiro. |
| Load(XmlReader) | |
| Load(Stream, LoadOptions) |
Cria uma nova XDocument instância usando o fluxo especificado, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha. |
| Load(TextReader, LoadOptions) |
Cria um novo XDocument a partir de um TextReader, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha. |
| Load(String, LoadOptions) |
Cria um novo XDocument a partir de um ficheiro, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha. |
| Load(XmlReader, LoadOptions) |
Carrega um XDocument a partir de um XmlReader, opcionalmente define o URI base e mantém a informação da linha. |
Observações
Usando um dos overloads deste método, pode carregar um XDocument a partir de um ficheiro, um TextReader, ou um XmlReader.
Para criar um XDocument a partir de uma cadeia que contém XML, use Parse.
Load(Stream)
Cria uma nova XDocument instância usando o fluxo especificado.
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
Parâmetros
- stream
- Stream
O fluxo que contém os dados XML.
Devoluções
Um XDocument objeto que lê os dados contidos no fluxo.
Observações
Se quiseres controlar as opções de carga, usa a Load sobrecarga que isso toma LoadOptions como parâmetro.
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Se tiver de modificar XmlReaderSettings, siga estes passos:
Cria um XmlReader chamando uma das Create sobrecargas que tomam XmlReaderSettings como parâmetro.
Passa o XmlReader para um dos Load overloads de XDocument que isso toma XmlReader como parâmetro.
Aplica-se a
Load(TextReader)
Cria um novo XDocument a partir de um 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
Parâmetros
- textReader
- TextReader
A TextReader que contém o conteúdo para o XDocument.
Devoluções
An XDocument que contém o conteúdo do especificado TextReader.
Exemplos
O exemplo seguinte cria um documento a partir de um 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)
Este exemplo produz a seguinte saída:
<Root>Content</Root>
Observações
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- Parse
- Save
- WriteTo(XmlWriter)
- Visão geral do LINQ to XML
- Consultar um XDocument vs. consultar um XElement
Aplica-se a
Load(String)
Cria um novo XDocument a partir de um ficheiro.
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
Parâmetros
Devoluções
E XDocument que contém o conteúdo do ficheiro especificado.
Exemplos
O exemplo seguinte mostra como carregar um XDocument a partir de um ficheiro.
Este exemplo utiliza o seguinte documento XML:
Ficheiro XML de Exemplo: Ordem de Compra Típica (LINQ para XML)
XDocument doc = XDocument.Load("PurchaseOrder.xml");
Console.WriteLine(doc);
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")
Console.WriteLine(doc)
Este exemplo produz a seguinte saída:
<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>
Observações
Este método utiliza um subjacente XmlReader para ler o XML numa árvore XML.
Use Parse para criar um XDocument a partir de uma string que contenha XML.
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- Parse
- Save
- WriteTo(XmlWriter)
- Visão geral do LINQ to XML
- Consultar um XDocument vs. consultar um XElement
Aplica-se a
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
Parâmetros
Devoluções
An XDocument que contém o conteúdo do especificado XmlReader.
Exemplos
O exemplo seguinte cria um documento DOM, cria um XmlNodeReader a partir do documento DOM, cria um XDocument usando o XmlNodeReaderdocumento .
// 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
Este exemplo produz a seguinte saída:
<Root>
<Child>child contents</Child>
</Root>
Observações
Uma possível utilização deste método é criar uma cópia de um documento DOM numa árvore LINQ para XML. Para isso, cria um XmlNodeReader a partir de um documento DOM e depois usa o XmlNodeReader para criar um XDocumentdocumento .
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- Parse
- Save
- WriteTo(XmlWriter)
- Visão geral do LINQ to XML
- Consultar um XDocument vs. consultar um XElement
Aplica-se a
Load(Stream, LoadOptions)
Cria uma nova XDocument instância usando o fluxo especificado, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha.
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
Parâmetros
- stream
- Stream
O fluxo que contém os dados XML.
- options
- LoadOptions
A LoadOptions que especifica se deve carregar o URI base e a informação da linha.
Devoluções
Um XDocument objeto que lê os dados contidos no fluxo.
Observações
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Se tiver de modificar XmlReaderSettings, siga estes passos:
Cria um XmlReader chamando uma das Create sobrecargas que assume XmlReaderSettings como parâmetro.
Passa o XmlReader para um dos Load overloads de XDocument que isso toma XmlReader como parâmetro.
Aplica-se a
Load(TextReader, LoadOptions)
Cria um novo XDocument a partir de um TextReader, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha.
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
Parâmetros
- textReader
- TextReader
A TextReader que contém o conteúdo para o XDocument.
- options
- LoadOptions
A LoadOptions que especifica o comportamento em espaço em branco, e se deve carregar o URI base e a informação de linha.
Devoluções
Um XDocument que contém o XML que foi lido a partir do especificado TextReader.
Exemplos
O exemplo seguinte cria um documento a partir de um 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)
Este exemplo produz a seguinte saída:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
Observações
Se o XML de origem estiver indentado, ao definir a PreserveWhitespace flag em options faz com que o leitor leia todo o espaço em branco do XML de origem. Os nós de tipo XText são criados tanto para espaços em branco significativos como insignificantes.
Se o XML de origem estiver indentado, não definir a PreserveWhitespace flag options faz com que o leitor ignore todo o espaço em branco insignificante no XML de origem. A árvore XML é criada sem quaisquer nós de texto para espaço em branco insignificante.
Se o XML de origem não estiver indentado, definir a PreserveWhitespace flag não options tem efeito. Um espaço em branco significativo ainda está preservado, e não existem intervalos de espaços em branco insignificantes que possam causar a criação de mais nós de texto em espaços em branco.
Para mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e Preservar espaço em branco durante a serialização.
Use Parse para criar um XElement a partir de uma string que contenha XML.
A definição SetBaseUri não é válida ao carregar a partir de um TextReader.
Há uma penalização de desempenho se definires a SetLineInfo bandeira.
A informação da linha é precisa imediatamente após o carregamento do documento XML. Se modificar a árvore XML após carregar o documento, a informação da linha pode tornar-se insignificante.
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- Parse
- Save
- WriteTo(XmlWriter)
- Visão geral do LINQ to XML
- Consultar um XDocument vs. consultar um XElement
Aplica-se a
Load(String, LoadOptions)
Cria um novo XDocument a partir de um ficheiro, preservando opcionalmente o espaço em branco, definindo o URI base e mantendo a informação da linha.
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
Parâmetros
- options
- LoadOptions
A LoadOptions que especifica o comportamento em espaço em branco, e se deve carregar o URI base e a informação de linha.
Devoluções
E XDocument que contém o conteúdo do ficheiro especificado.
Exemplos
O exemplo seguinte mostra como carregar um XDocument a partir de um ficheiro.
Este exemplo utiliza o seguinte documento XML:
Ficheiro XML de Exemplo: Ordem de Compra Típica (LINQ para 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())
Este exemplo produz a seguinte saída:
nodes if not preserving whitespace: 48
nodes if preserving whitespace: 82
Observações
Se o XML de origem estiver indentado, ao definir a PreserveWhitespace flag em options faz com que o leitor leia todo o espaço em branco do XML de origem. Os nós de tipo XText são criados tanto para espaços em branco significativos como insignificantes.
Se o XML de origem estiver indentado, não definir a PreserveWhitespace flag options faz com que o leitor ignore todo o espaço em branco insignificante no XML de origem. A árvore XML é criada sem quaisquer nós de texto para espaço em branco insignificante.
Se o XML de origem não estiver indentado, definir a PreserveWhitespace flag não options tem efeito. Um espaço em branco significativo ainda está preservado, e não existem intervalos de espaços em branco insignificantes que possam causar a criação de mais nós de texto em espaços em branco.
Para mais informações, consulte Preservar espaço em branco ao carregar ou analisar XML e Preservar espaço em branco durante a serialização.
Use Parse para criar um XDocument a partir de uma string que contenha XML.
Há uma penalização de desempenho se definires as SetBaseUri e as SetLineInfo bandeiras.
O URI base e a informação da linha são precisos imediatamente após o carregamento do documento XML. Se modificar a árvore XML após carregar o documento, o URI base e a informação da linha podem tornar-se sem sentido.
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- Parse
- Save
- WriteTo(XmlWriter)
- Visão geral do LINQ to XML
- Consultar um XDocument vs. consultar um XElement
Aplica-se a
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
Parâmetros
- options
- LoadOptions
A LoadOptions que especifica se deve carregar o URI base e a informação da linha.
Devoluções
Um XDocument que contém o XML que foi lido a partir do especificado XmlReader.
Exemplos
O exemplo seguinte carrega a informação da linha que carrega a partir do XmlReader. Depois, imprime a informação da linha.
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
Este exemplo produz a seguinte saída:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Observações
Ao criar um XmlNodeReader a partir de um documento DOM, e depois usar para XmlNodeReader criar um XElement, este método pode ser usado para criar uma cópia de um documento DOM numa árvore LINQ para XML.
Use Parse para criar um XDocument a partir de uma string que contenha XML.
A definição PreserveWhitespace não é válida ao carregar a partir de um XmlReader. Eles XmlReader serão configurados para ler espaços em branco ou não. A árvore LINQ para XML será preenchida com os nós de espaço em branco que o leitor apresenta. Este será o comportamento independentemente de PreserveWhitespace estar definido ou não.
Podem XmlReader ter um URI base válido ou não. Se definires SetBaseUri, o URI base será definido na árvore XML a partir do URI base que é reportado pelo XmlReader.
Podem XmlReader ter uma informação válida da linha ou não. Se definir SetLineInfo, a informação de linha será definida na árvore XML a partir da informação de linha reportada pelo XmlReader.
Há uma penalização de desempenho se definires a SetLineInfo bandeira.
A informação da linha é precisa imediatamente após o carregamento do documento XML. Se modificar a árvore XML após carregar o documento, a informação da linha pode tornar-se insignificante.
A funcionalidade de carregamento do LINQ para XML baseia-se em XmlReader. Portanto, pode detetar quaisquer exceções que sejam lançadas pelos XmlReader.Create métodos de sobrecarga e pelos XmlReader métodos que leem e analisam o documento.
Ver também
- WriteTo(XmlWriter)
- Save
- Parse
- Visão geral do LINQ to XML
- Como ler e escrever um documento codificado