XDocument.Parse Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новое из XDocument строки, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке.
Перегрузки
| Имя | Описание |
|---|---|
| Parse(String) |
Создает новое из XDocument строки. |
| Parse(String, LoadOptions) |
Создает новое из XDocument строки, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке. |
Примеры
В следующем примере создается строка, содержащая XML. Затем он анализирует строку в .XDocument
string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>";
XDocument doc = XDocument.Parse(str);
Console.WriteLine(doc);
Dim str As String = _
"<?xml version= '1.0'?>" & _
"<!-- comment at the root level -->" & _
"<Root>" & _
" <Child>Content</Child>" & _
"</Root>"
Dim doc As XDocument = XDocument.Parse(str)
Console.WriteLine(doc)
В примере получается следующий вывод.
<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>
Комментарии
Этот метод анализирует строку и создает XML-дерево.
Parse(String)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из XDocument строки.
public:
static System::Xml::Linq::XDocument ^ Parse(System::String ^ text);
public static System.Xml.Linq.XDocument Parse(string text);
static member Parse : string -> System.Xml.Linq.XDocument
Public Shared Function Parse (text As String) As XDocument
Параметры
- text
- String
Строка, содержащая XML.
Возвращаемое значение
Заполненный XDocument из строки, содержащей XML.
Примеры
В следующем примере создается строка, содержащая XML. Затем он анализирует строку в .XDocument
string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>";
XDocument doc = XDocument.Parse(str);
Console.WriteLine(doc);
Dim str As String = _
"<?xml version= '1.0'?>" & _
"<!-- comment at the root level -->" & _
"<Root>" & _
" <Child>Content</Child>" & _
"</Root>"
Dim doc As XDocument = XDocument.Parse(str)
Console.WriteLine(doc)
В примере получается следующий вывод.
<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>
Комментарии
Этот метод не сохраняет пробелы. Если вы хотите сохранить пробелы в XML-дереве, используйте перегрузку Parse , которая принимает LoadOptions в качестве параметра.
Дополнительные сведения см. в разделе "Сохранение пробелов при загрузке или анализе XML " и сохранении пробелов во время сериализации.
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, вы можете перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.
См. также раздел
Применяется к
Parse(String, LoadOptions)
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
- Исходный код:
- XDocument.cs
Создает новое из XDocument строки, при необходимости сохраняя пробелы, устанавливая базовый универсальный код ресурса (URI) и сохраняя сведения о строке.
public:
static System::Xml::Linq::XDocument ^ Parse(System::String ^ text, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Parse(string text, System.Xml.Linq.LoadOptions options);
static member Parse : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Parse (text As String, options As LoadOptions) As XDocument
Параметры
- text
- String
Строка, содержащая XML.
- options
- LoadOptions
Значение, LoadOptions указывающее поведение пробелов и загрузку базовых URI и сведений о строке.
Возвращаемое значение
Заполненный XDocument из строки, содержащей XML.
Примеры
В следующем примере выполняется синтаксический анализ строки в объект XDocument.
string str =
@"<?xml version=""1.0""?>
<!-- comment at the root level -->
<Root>
<Child>Content</Child>
</Root>";
XDocument doc1 = XDocument.Parse(str, LoadOptions.PreserveWhitespace);
Console.WriteLine("nodes when preserving whitespace: {0}", doc1.DescendantNodes().Count());
XDocument doc2 = XDocument.Parse(str, LoadOptions.None);
Console.WriteLine("nodes when not preserving whitespace: {0}", doc2.DescendantNodes().Count());
Dim str As String = _
"<?xml version= '1.0'?>" & Environment.NewLine & _
"<!-- comment at the root level -->" & Environment.NewLine & _
"<Root>" & Environment.NewLine & _
" <Child>Content</Child>" & Environment.NewLine & _
"</Root>"
Dim doc1 As XDocument = XDocument.Parse(str, LoadOptions.PreserveWhitespace)
Console.WriteLine("nodes when preserving whitespace: {0}", doc1.DescendantNodes().Count())
Dim doc2 As XDocument = XDocument.Parse(str, LoadOptions.None)
Console.WriteLine("nodes when not preserving whitespace: {0}", doc2.DescendantNodes().Count())
В примере получается следующий вывод.
nodes when preserving whitespace: 8
nodes when not preserving whitespace: 4
Комментарии
Если исходный XML-код отступен, установка PreserveWhitespace флага options приводит к тому, что читатель считывает все пробелы в исходном XML-файле. Узлы типа XText создаются как для значительного, так и для незначительного пробела.
Если исходный XML-код отступен, не устанавливая PreserveWhitespace флаг, options читатель пропускает все незначительные пробелы в исходном XML. Дерево XML создается без текстовых узлов для незначительного пробела.
Если исходный XML-код не отступен, установка флага PreserveWhitespaceoptions не действует. Значительные пробелы по-прежнему сохраняются, и нет диапазонов незначительных пробелов, которые могут привести к созданию дополнительных узлов текста пробелов.
Дополнительные сведения см. в разделе "Сохранение пробелов при загрузке или анализе XML " и сохранении пробелов во время сериализации.
Параметр SetBaseUri недопустим при синтаксическом анализе String.
При установке флага SetLineInfo существует штраф производительности.
Данные строки точны сразу после загрузки XML-документа. При изменении XML-дерева после загрузки документа сведения о строке могут стать бессмысленными.
Функции загрузки LINQ to XML основаны на XmlReader. Таким образом, вы можете перехватывать все исключения, создаваемые XmlReader.Create методами перегрузки и XmlReader методами, которые считывают и анализируют документ.