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

XElement

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 ein-Element analysiert XElement .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-Methode, die Parse 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 Leerraum beim Laden oder überprüfen von XML und beibehalten von Leerraum während der Serialisierung.For more information, see Preserve white space while loading or parsing XML and Preserve white space while serializing.

Die Ladefunktionen von LINQ to XML basieren 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 Methoden ausgelöst werden, die XmlReader 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.

Weitere Informationen

Gilt für:

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

XElement

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 XElement auf zwei verschiedene Arten in eine analysiert: die Beibehaltung 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 eingerückt ist, bewirkt das Festlegen des- PreserveWhitespace Flags in, dass options der Reader den gesamten Leerraum in der XML-Quelldatei liest.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 bedeutende als auch für unbedeutende Leerzeichen erstellt.Nodes of type XText are created for both significant and insignificant white space.

Wenn das Quell-XML eingerückt ist, bewirkt das Festlegen des-Flags nicht, dass PreserveWhitespace options der Reader den gesamten unbedeutenden Leerraum in der Quell-XML 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 Leerraum beim Laden oder überprüfen von XML und beibehalten von Leerraum während der Serialisierung.For more information, see Preserve white space while loading or parsing XML and Preserve white space while serializing.

SetBaseUriDie Einstellung hat keine Auswirkungen, wenn Sie von einem-Element aus ein-Element StringSetting SetBaseUri will have no effect when parsing from a String.

Der XmlReader kann über gültige Zeilen Informationen verfügen oder nicht.The XmlReader may have a valid line information or not. Wenn Sie festlegen SetLineInfo , werden die Zeilen Informationen in der XML-Struktur in den Zeilen Informationen festgelegt, die von der gemeldet werden XmlReader .If you set SetLineInfo, the line information will be set in the XML tree from the line information that is reported by the XmlReader.

Beim Festlegen des Flags ist eine Leistungs Einbuße vorhanden SetLineInfo .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.

Die Ladefunktionen von LINQ to XML basieren 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 Methoden ausgelöst werden, die XmlReader 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.

Weitere Informationen

Gilt für: