Udostępnij za pośrednictwem


XDocument.Parse Metoda

Definicja

Tworzy nowy XDocument element na podstawie ciągu, opcjonalnie zachowując biały odstęp, ustawiając podstawowy identyfikator URI i zachowując informacje o wierszu.

Przeciążenia

Parse(String)

Tworzy nowy XDocument element na podstawie ciągu.

Parse(String, LoadOptions)

Tworzy nowy XDocument element na podstawie ciągu, opcjonalnie zachowując biały odstęp, ustawiając podstawowy identyfikator URI i zachowując informacje o wierszu.

Przykłady

Poniższy przykład tworzy ciąg zawierający kod XML. Następnie analizuje ciąg do elementu 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)

Ten przykład generuje następujące wyniki:

<!-- comment at the root level -->
<Root>
  <Child>Content</Child>
</Root>

Uwagi

Ta metoda analizuje ciąg i tworzy drzewo XML.

Parse(String)

Źródło:
XDocument.cs
Źródło:
XDocument.cs
Źródło:
XDocument.cs

Tworzy nowy XDocument element na podstawie ciągu.

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

Parametry

text
String

Ciąg zawierający kod XML.

Zwraca

Wypełniony XDocument ciągiem zawierającym kod XML.

Przykłady

Poniższy przykład tworzy ciąg zawierający kod XML. Następnie analizuje ciąg do elementu 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)

Ten przykład generuje następujące wyniki:

<!-- comment at the root level -->
<Root>
  <Child>Content</Child>
</Root>

Uwagi

Ta metoda nie zachowuje odstępu. Jeśli chcesz zachować białe odstępy w drzewie XML, użyj przeciążenia Parse , które przyjmuje LoadOptions jako parametr.

Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie odstępu podczas serializacji.

Funkcja ładowania LINQ to XML jest oparta na .XmlReader W związku z tym można przechwycić wszelkie wyjątki, które są zgłaszane przez XmlReader.Create metody przeciążenia i XmlReader metody odczytujące i analizowane dokumentu.

Zobacz też

Dotyczy

Parse(String, LoadOptions)

Źródło:
XDocument.cs
Źródło:
XDocument.cs
Źródło:
XDocument.cs

Tworzy nowy XDocument element na podstawie ciągu, opcjonalnie zachowując biały odstęp, ustawiając podstawowy identyfikator URI i zachowując informacje o wierszu.

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

Parametry

text
String

Ciąg zawierający kod XML.

options
LoadOptions

Element LoadOptions określający zachowanie białych znaków oraz to, czy należy załadować podstawowy identyfikator URI i informacje o wierszu.

Zwraca

Wypełniony XDocument ciągiem zawierającym kod XML.

Przykłady

Poniższy przykład analizuje ciąg do elementu 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())

Ten przykład generuje następujące wyniki:

nodes when preserving whitespace: 8
nodes when not preserving whitespace: 4

Uwagi

Jeśli źródłowy kod XML jest wcięta PreserveWhitespace , ustawienie flagi powoduje options , że czytnik odczytuje wszystkie białe znaki w źródłowym formacie XML. Węzły typu XText są tworzone zarówno dla znaczących, jak i nieistotnych białych znaków.

Jeśli źródłowy kod XML jest wcięty, nie ustawia flagi PreserveWhitespace w options elemecie powoduje, że czytnik ignoruje wszystkie nieistotne białe znaki w źródłowym formacie XML. Drzewo XML jest tworzone bez żadnych węzłów tekstowych dla nieistotnego odstępu.

Jeśli źródłowy kod XML nie jest wcięty, ustawienie flagi PreserveWhitespace w options elemecie nie ma wpływu. Znaczne odstępy są nadal zachowywane i nie ma żadnych zakresów nieistotnych białych znaków, które mogłyby spowodować utworzenie większej liczby węzłów tekstowych odstępów.

Aby uzyskać więcej informacji, zobacz Zachowywanie białych znaków podczas ładowania lub analizowania kodu XML i Zachowywanie odstępu podczas serializacji.

Ustawienie SetBaseUri jest nieprawidłowe podczas analizowania z elementu String.

W przypadku ustawienia flagi SetLineInfo występuje kara za wydajność.

Informacje o wierszu są dokładne natychmiast po załadowaniu dokumentu XML. Jeśli po załadowaniu dokumentu zmodyfikujesz drzewo XML, informacje o wierszu mogą stać się bez znaczenia.

Funkcja ładowania LINQ to XML jest oparta na .XmlReader W związku z tym można przechwycić wszelkie wyjątki, które są zgłaszane przez XmlReader.Create metody przeciążenia i XmlReader metody odczytujące i analizowane dokumentu.

Zobacz też

Dotyczy