XDocument.Load Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый элемент XDocument из файла, заданного URI, из объекта TextReader или из объекта XmlReader.
Перегрузки
Load(Stream) |
Создает новый экземпляр XDocument с помощью указанного потока. |
Load(TextReader) |
Создает новый XDocument из TextReader. |
Load(String) |
Создает новый XDocument из файла. |
Load(XmlReader) | |
Load(Stream, LoadOptions) |
Создает новый экземплярXDocument, используя указанный поток и при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках. |
Load(TextReader, LoadOptions) |
Создает новый документ XDocument из объекта TextReader, при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках. |
Load(String, LoadOptions) |
Создает новый XDocument из файла, при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках. |
Load(XmlReader, LoadOptions) |
Загружает XDocument из XmlReader, при необходимости задавая базовый URI и сохраняя сведения о строках. |
Комментарии
С помощью одной из перегрузок этого метода можно загрузить XDocument из файла, a TextReaderили an XmlReader.
Чтобы создать из XDocument строки, содержащей XML, используйте Parse.
Load(Stream)
Создает новый экземпляр XDocument с помощью указанного потока.
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
Параметры
- stream
- Stream
Поток, содержащий XML-данные.
Возвращаемое значение
Объект XDocument, который считывает содержащиеся в потоке данные.
Комментарии
Если вы хотите управлять параметрами загрузки, используйте перегрузку Load , которая принимает LoadOptions в качестве параметра.
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, вы можете перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
Если необходимо изменить XmlReaderSettings, выполните следующие действия.
Создайте, XmlReader вызвав одну из Create перегрузок, которые принимают XmlReaderSettings в качестве параметра.
XmlReader Передайте одну из Load перегрузокXDocument, которые принимают XmlReader в качестве параметра.
Применяется к
Load(TextReader)
Создает новый XDocument из 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
Параметры
- textReader
- TextReader
Объект TextReader, включающий содержимое для документа XDocument.
Возвращаемое значение
Документ XDocument, включающий содержимое указанного объекта TextReader.
Примеры
В следующем примере создается документ на основе .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)
В этом примере выводятся следующие данные:
<Root>Content</Root>
Комментарии
функция загрузки LINQ to XML основана на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- Parse
- Save
- WriteTo(XmlWriter)
- Общие сведения о LINQ to XML
- Запрос объекта XElement и запрос XDocument
Применяется к
Load(String)
Создает новый XDocument из файла.
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
Параметры
Возвращаемое значение
Элемент XDocument с содержимым указанного файла.
Примеры
В следующем примере показано, как загрузить файл XDocument из файла.
В этом примере используется следующий XML-документ:
Пример XML-файла: типичный заказ на покупку (LINQ to XML)
XDocument doc = XDocument.Load("PurchaseOrder.xml");
Console.WriteLine(doc);
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")
Console.WriteLine(doc)
В этом примере выводятся следующие данные:
<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>
Комментарии
Этот метод использует базовый XmlReader метод для считывания XML-кода в XML-дерево.
Используется Parse для создания XDocument из строки, содержащей XML.
LINQ to XML функции загрузки основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- Parse
- Save
- WriteTo(XmlWriter)
- Общие сведения о LINQ to XML
- Запрос объекта XElement и запрос XDocument
Применяется к
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
Параметры
Возвращаемое значение
Документ XDocument, включающий содержимое указанного объекта XmlReader.
Примеры
В следующем примере создается документ DOM, создается XmlNodeReader из документа DOM, создается XDocument с помощью 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
В этом примере выводятся следующие данные:
<Root>
<Child>child contents</Child>
</Root>
Комментарии
Одним из возможных способов использования этого метода является создание копии документа DOM в дереве LINQ to XML. Для этого создайте документ XmlNodeReader DOM, а затем используете XmlNodeReader его для создания XDocument.
LINQ to XML функции загрузки основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- Parse
- Save
- WriteTo(XmlWriter)
- Общие сведения о LINQ to XML
- Запрос объекта XElement и запрос XDocument
Применяется к
Load(Stream, LoadOptions)
Создает новый экземплярXDocument, используя указанный поток и при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках.
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
Параметры
- stream
- Stream
Поток, содержащий данные XML.
- options
- LoadOptions
Объект LoadOptions, указывающий, следует ли загружать базовый URI и сведения о строках.
Возвращаемое значение
Объект XDocument, который считывает содержащиеся в потоке данные.
Комментарии
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
Если необходимо изменить XmlReaderSettings, выполните следующие действия.
Создайте объект XmlReader , вызвав одну из Create перегрузок, которые принимают XmlReaderSettings в качестве параметра.
XmlReader Передайте одну из Load перегрузокXDocument, которые принимают XmlReader в качестве параметра.
Применяется к
Load(TextReader, LoadOptions)
Создает новый документ XDocument из объекта TextReader, при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках.
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
Параметры
- textReader
- TextReader
Объект TextReader, включающий содержимое для документа XDocument.
- options
- LoadOptions
LoadOptions, указывающий поведение пустого пространства и необходимость загрузки базового URI и сведений о строке.
Возвращаемое значение
XDocument, содержащий XML, считанный из указанного TextReader.
Примеры
В следующем примере создается документ на основе .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)
В этом примере выводятся следующие данные:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
Комментарии
Если исходный XML-код имеет отступ, установка флага PreserveWhitespace options
приводит к тому, что средство чтения считывает все пробелы в исходном XML-коде. Узлы типа XText создаются как для значительного, так и для незначительного пробела.
Если исходный XML-код имеет отступ, не устанавливая PreserveWhitespace флаг, options
средство чтения игнорирует все незначительные пробелы в исходном XML-коде. Xml-дерево создается без текстовых узлов для незначительного пробела.
Если исходный XML-код не отступен, установка флага PreserveWhitespace options
не действует. Значительные пробелы по-прежнему сохраняются, и нет диапазонов незначительных пробелов, которые могут привести к созданию большего количества текстовых узлов пробелов.
Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.
Используется Parse для создания XElement из строки, содержащей XML.
Параметр SetBaseUri недействителен при загрузке из .TextReader
Если установить SetLineInfo флаг, то производительность будет неуказана.
Сведения о строке точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа сведения о строке могут стать бессмысленными.
LINQ to XML функции загрузки основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- Parse
- Save
- WriteTo(XmlWriter)
- Общие сведения о LINQ to XML
- Запрос объекта XElement и запрос XDocument
Применяется к
Load(String, LoadOptions)
Создает новый XDocument из файла, при необходимости оставляя пустое пространство, задавая базовый URI и сохраняя сведения о строках.
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
Параметры
- options
- LoadOptions
LoadOptions, указывающий поведение пустого пространства и необходимость загрузки базового URI и сведений о строке.
Возвращаемое значение
Элемент XDocument с содержимым указанного файла.
Примеры
В следующем примере показано, как загрузить файл XDocument из файла.
В этом примере используется следующий XML-документ:
Пример XML-файла: типичный заказ на покупку (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())
В этом примере выводятся следующие данные:
nodes if not preserving whitespace: 48
nodes if preserving whitespace: 82
Комментарии
Если исходный XML-код имеет отступ, установка флага PreserveWhitespace options
приводит к тому, что средство чтения считывает все пробелы в исходном XML-коде. Узлы типа XText создаются как для значительного, так и для незначительного пробела.
Если исходный XML-код имеет отступ, не устанавливая PreserveWhitespace флаг, options
средство чтения игнорирует все незначительные пробелы в исходном XML-коде. Xml-дерево создается без текстовых узлов для незначительного пробела.
Если исходный XML-код не отступен, установка флага PreserveWhitespace options
не действует. Значительные пробелы по-прежнему сохраняются, и нет диапазонов незначительных пробелов, которые могут привести к созданию большего количества текстовых узлов пробелов.
Дополнительные сведения см. в разделе "Сохранение пробела" при загрузке или анализе XML и сохранении пробелов при сериализации.
Используется Parse для создания XDocument из строки, содержащей XML.
Если задать SetBaseUri флаги и SetLineInfo флаги, то производительность будет неуказана.
Базовый универсальный код ресурса (URI) и сведения о строке точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа базовый URI и сведения о строке могут стать бессмысленными.
LINQ to XML функции загрузки основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- Parse
- Save
- WriteTo(XmlWriter)
- Общие сведения о LINQ to XML
- Запрос объекта XElement и запрос XDocument
Применяется к
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
Параметры
- options
- LoadOptions
Объект LoadOptions, указывающий, следует ли загружать базовый URI и сведения о строках.
Возвращаемое значение
XDocument, содержащий XML, считанный из указанного XmlReader.
Примеры
В следующем примере загружается информация о строке, которую она загружает из XmlReader. Затем она выводит сведения о строке.
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
В этом примере выводятся следующие данные:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Комментарии
Создав документ XmlNodeReader DOM, а затем используя XmlNodeReader его для созданияXElement, этот метод можно использовать для создания копии документа DOM в дереве LINQ to XML.
Используется Parse для создания XDocument из строки, содержащей XML.
Параметр PreserveWhitespace недействителен при загрузке из .XmlReader Он XmlReader будет настроен на чтение пробелов или нет. Дерево LINQ to XML будет заполнено узлами пробелов, которые будут отображаться средством чтения. Это будет поведение независимо от того, задано ли PreserveWhitespace оно.
Может XmlReader иметь допустимый базовый универсальный код ресурса (URI) или нет. Если этот параметр заданSetBaseUri, базовый универсальный код ресурса (URI) будет задан в xml-дереве из базового URI, который сообщается.XmlReader
Возможно XmlReader , у него есть допустимые сведения о строке. Если заданоSetLineInfo, сведения о строке будут заданы в XML-дереве из сведений о строке, о чем сообщается.XmlReader
Если установить SetLineInfo флаг, то производительность будет неуказана.
Сведения о строке точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа сведения о строке могут стать бессмысленными.
LINQ to XML функции загрузки основаны на XmlReader. Таким образом, можно перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
- WriteTo(XmlWriter)
- Save
- Parse
- Общие сведения о LINQ to XML
- Практическое руководство. Чтение и запись кодированного документа