XDocument.Load Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый из XDocument файла, указанного универсальным кодом ресурса (URI), из TextReaderили из файла XmlReader.
Перегрузки
| Имя | Описание |
|---|---|
| Load(Stream) |
Создает новый XDocument экземпляр с помощью указанного потока. |
| Load(TextReader) |
Создает новое из XDocumentTextReader. |
| Load(String) |
Создает новое из XDocument файла. |
| Load(XmlReader) | |
| Load(Stream, LoadOptions) |
Создает новый XDocument экземпляр с помощью указанного потока, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке. |
| Load(TextReader, LoadOptions) |
Создает новое из XDocumentTextReader, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке. |
| Load(String, LoadOptions) |
Создает новое из XDocument файла, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке. |
| Load(XmlReader, LoadOptions) |
Загружается из , при необходимости устанавливая базовый XDocumentXmlReaderуниверсальный код ресурса (URI) и сохраняя сведения о строке. |
Комментарии
С помощью одной из перегрузок этого метода можно загрузить XDocument из файла, a TextReaderили an XmlReader.
Чтобы создать XDocument из строки, содержащей XML, используйте Parse.
Load(Stream)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новый 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.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из XDocumentTextReader.
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 методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Load(String)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из 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 методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Load(XmlReader)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- 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
Параметры
Возвращаемое значение
Объект XDocument , содержащий содержимое указанного XmlReaderобъекта.
Примеры
В следующем примере создается документ DOM, который создается из документа DOM, создается XmlNodeReaderXDocument с помощью 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 методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Load(Stream, LoadOptions)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новый 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.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из XDocumentTextReader, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (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-код не отступен, установка флага PreserveWhitespaceoptions не действует. Значительные пробелы по-прежнему сохраняются, и нет диапазонов незначительных пробелов, которые могут привести к созданию дополнительных узлов текста пробелов.
Дополнительные сведения см. в разделе "Сохранение пробелов при загрузке или анализе XML " и сохранении пробелов во время сериализации.
Используется Parse для создания XElement из строки, содержащей XML.
Параметр SetBaseUri недопустим при загрузке из .TextReader
При установке флага SetLineInfo существует штраф производительности.
Данные строки точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа сведения о строке могут стать бессмысленными.
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, вы можете перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Load(String, LoadOptions)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из 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-код не отступен, установка флага PreserveWhitespaceoptions не действует. Значительные пробелы по-прежнему сохраняются, и нет диапазонов незначительных пробелов, которые могут привести к созданию дополнительных узлов текста пробелов.
Дополнительные сведения см. в разделе "Сохранение пробелов при загрузке или анализе XML " и сохранении пробелов во время сериализации.
Используется Parse для создания XDocument из строки, содержащей XML.
Если задать SetBaseUri флаги и SetLineInfo флаги, есть штраф производительности.
Базовый универсальный код ресурса (URI) и сведения о строке точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа базовый универсальный код ресурса (URI) и сведения о строке могут стать бессмысленными.
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, вы можете перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Load(XmlReader, LoadOptions)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- 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
Параметры
- 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 методами, которые считывают и анализируют документ.