XElement.Parse Methode

Definition

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Überlädt

Parse(String)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält.Load an XElement from a string that contains XML.

Parse(String, LoadOptions)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Parse(String)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält.Load an XElement from a string that contains XML.

public:
 static System::Xml::Linq::XElement ^ Parse(System::String ^ text);
public static System.Xml.Linq.XElement Parse (string text);
static member Parse : string -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String) As XElement

Parameter

text
String

Ein String, der XML enthält.A String that contains XML.

Gibt zurück

Ein XElement, das aus der Zeichenfolge aufgefüllt wird, die XML enthält.An XElement populated from the string that contains XML.

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge erstellt, die XML enthält.The following example creates a string that contains XML. Anschließend wird die Zeichenfolge in eine XElement analysiert.It then parses the string into an XElement.

XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");  
Console.WriteLine(xmlTree);  
Dim xmlTree As XElement = <Root><Child></Child></Root>  
Console.WriteLine(xmlTree)  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

<Root>  
  <Child></Child>  
</Root>  

Hinweise

Diese Methode behält Leerzeichen nicht bei.This method does not preserve white space. Wenn Sie Leerraum in der XML-Struktur beibehalten möchten, verwenden Sie die-Überladung der Parse-Methode, die LoadOptions als Parameter annimmt.If you want to preserve white space in the XML tree, use the overload of the Parse method that takes LoadOptions as a parameter. Weitere Informationen finden Sie unter beibehalten von Leerzeichen beim Laden oder überprüfen von XML und beibehalten von Leerraum während der Serialisierung.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

LINQ to XML Lade Funktionalität basiert auf XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Daher können Sie alle Ausnahmen abfangen, die von den XmlReader.Create-Überladungs Methoden und den XmlReader-Methoden ausgelöst werden, die das Dokument lesen und analysieren.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Siehe auch

Parse(String, LoadOptions)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

public:
 static System::Xml::Linq::XElement ^ Parse(System::String ^ text, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Parse (string text, System.Xml.Linq.LoadOptions options);
static member Parse : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String, options As LoadOptions) As XElement

Parameter

text
String

Ein String, der XML enthält.A String that contains XML.

options
LoadOptions

Ein LoadOptions, das Leerraumverhalten angibt und festlegt, ob Basis-URI- und Zeileninformationen geladen werden.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

Gibt zurück

Ein XElement, das aus der Zeichenfolge aufgefüllt wird, die XML enthält.An XElement populated from the string that contains XML.

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge in eine XElement auf zwei verschiedene Arten analysiert: das Beibehalten von Leerraum und das Beibehalten von Leerzeichen.The following example parses a string into an XElement in two different ways: preserving white space, and not preserving white space. Anschließend wird eine Abfrage verwendet, um die Anzahl der Leerraum Knoten in der resultierenden XML-Struktur zu ermitteln.It then uses a query to determine the number of white space nodes in the resulting XML tree.

int whiteSpaceNodes;  
  
XElement xmlTree1 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.None);  
whiteSpaceNodes = xmlTree1  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}",  
    whiteSpaceNodes);  
  
XElement xmlTree2 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.PreserveWhitespace);  
whiteSpaceNodes = xmlTree2  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}",  
    whiteSpaceNodes);  
Dim whiteSpaceNodes As Integer  
  
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.None)  
whiteSpaceNodes = xmlTree1 _  
    .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)  
  
Dim xmlTree2 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.PreserveWhitespace)  
whiteSpaceNodes = xmlTree2 _  
    .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)  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

Count of white space nodes (not preserving whitespace): 0  
Count of white space nodes (preserving whitespace): 3  

Im folgenden Beispiel werden Zeilen Informationen beim Analysieren der Zeichenfolge beibehalten.The following example retains line information as it parses the string.

string markup =  
@"<Root>  
    <Child>  
        <GrandChild/>  
    </Child>  
</Root>";  
  
XElement xRoot = XElement.Parse(markup, 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.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>"  
  
Dim xRoot As XElement = XElement.Parse(markup, 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.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  

Dieses Beispiel erzeugt die folgende Ausgabe:This example produces the following output:

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child             2    6  
    GrandChild      3    10  

Hinweise

Wenn das Quell-XML eingezogen ist, wird durch das Festlegen des PreserveWhitespace-Flags in options der Reader alle Leerräume in der Quell-XML-Datei gelesen.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. Knoten vom Typ XText werden sowohl für einen signifikanten als auch für einen unbedeutenden Leerraum erstellt.Nodes of type XText are created for both significant and insignificant white space.

Wenn das Quell-XML eingezogen ist, wird das PreserveWhitespace-Flag in options nicht festgelegt, da der Reader den gesamten unbedeutenden Leerraum in der XML-Quelldatei ignoriert.If the source XML is indented, not setting the PreserveWhitespace flag in options causes the reader to ignore all of the insignificant white space in the source XML. Die XML-Struktur wird ohne Textknoten für unbedeutende Leerzeichen erstellt.The XML tree is created without any text nodes for insignificant white space.

Wenn das Quell-XML nicht eingezogen wird, hat das Festlegen des PreserveWhitespace-Flags in options keine Auswirkung.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. Signifikanter Leerraum wird weiterhin beibehalten, und es gibt keine Bereiche mit unsignifikantem Leerraum, die die Erstellung von mehr Leerraum-Textknoten verursachen könnten.Significant white space is still preserved, and there are no spans of insignificant white space that could cause the creation of more white space text nodes.

Weitere Informationen finden Sie unter beibehalten von Leerzeichen beim Laden oder überprüfen von XML und beibehalten von Leerraum während der Serialisierung.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

Das Festlegen von SetBaseUri hat keine Auswirkung, wenn eine String-1 verwendet wird.Setting SetBaseUri will have no effect when parsing from a String.

Der XmlReader weist möglicherweise gültige Zeilen Informationen auf.The XmlReader may have a valid line information or not. Wenn Sie SetLineInfo festlegen, werden die Zeilen Informationen in der XML-Struktur anhand der Zeilen Informationen festgelegt, die vom XmlReader gemeldet werden.If you set SetLineInfo, the line information will be set in the XML tree from the line information that is reported by the XmlReader.

Wenn Sie das Flag "SetLineInfo" festgelegt haben, kommt es zu Leistungseinbußen.There is a performance penalty if you set the SetLineInfo flag.

Die Zeilen Informationen sind unmittelbar nach dem Laden des XML-Dokuments genau.The line information is accurate immediately after loading the XML document. Wenn Sie die XML-Struktur nach dem Laden des Dokuments ändern, werden die Zeilen Informationen möglicherweise bedeutungslos.If you modify the XML tree after loading the document, the line information may become meaningless.

LINQ to XML Lade Funktionalität basiert auf XmlReader.LINQ to XML's loading functionality is built upon XmlReader. Daher können Sie alle Ausnahmen abfangen, die von den XmlReader.Create-Überladungs Methoden und den XmlReader-Methoden ausgelöst werden, die das Dokument lesen und analysieren.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

Siehe auch

Gilt für: