Freigeben über


XElement.Parse Methode

Definition

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.

Überlädt

Parse(String)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält.

Parse(String, LoadOptions)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.

Parse(String)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält.

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.

Gibt zurück

XElement

Ein XElement, das aus der Zeichenfolge aufgefüllt wird, die XML enthält.

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge erstellt, die XML enthält. Anschließend analysiert er die Zeichenfolge in eine 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:

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

Hinweise

Diese Methode behält keinen Leerraum bei. Wenn Sie Leerzeichen in der XML-Struktur beibehalten möchten, verwenden Sie die Überladung der Parse Methode, die als Parameter verwendet wird LoadOptions . Weitere Informationen finden Sie unter Beibehalten des Leerzeichens beim Laden oder Analysieren von XML und Beibehalten des Leerzeichens beim Serialisieren.

LINQ to XML Ladefunktionen werden erstelltXmlReader. Daher können Sie ausnahmen erfassen, die durch die Überladungsmethoden und die XmlReader.Create XmlReader Methoden ausgelöst werden, die das Dokument lesen und analysieren.

Siehe auch

Gilt für

Parse(String, LoadOptions)

Lädt ein XElement aus einer Zeichenfolge, die XML enthält, wobei optional Leerraum und Zeileninformationen beibehalten werden.

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.

options
LoadOptions

Ein LoadOptions, das Leerraumverhalten angibt und festlegt, ob Basis-URI- und Zeileninformationen geladen werden.

Gibt zurück

XElement

Ein XElement, das aus der Zeichenfolge aufgefüllt wird, die XML enthält.

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge in XElement zwei verschiedene Arten analysiert: Beibehalten des Leerraums und nicht beibehaltener Leerraum. Anschließend wird eine Abfrage verwendet, um die Anzahl der Leerzeichenknoten in der resultierenden XML-Struktur zu bestimmen.

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:

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

Im folgenden Beispiel werden Zeileninformationen beibehalten, da sie die Zeichenfolge analysiert.

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:

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

Hinweise

Wenn die Quell-XML eingerückt ist, führt das Festlegen PreserveWhitespace des Flags options dazu, dass der Leser alle Leerzeichen in der Quell-XML liest. Knoten des Typs XText werden sowohl für erhebliche als auch unbedeutende Leerräume erstellt.

Wenn die Quell-XML eingerückt ist, wird das Flag options nicht festgelegtPreserveWhitespace, wodurch der Leser alle unbedeutenden Leerzeichen in der Quell-XML ignoriert. Die XML-Struktur wird ohne Textknoten für unbedeutende Leerzeichen erstellt.

Wenn die Quell-XML nicht eingerückt ist, hat das Festlegen des PreserveWhitespace Flags options keine Auswirkung. Erhebliche Leerzeichen bleiben weiterhin erhalten, und es gibt keine Spannen von unbedeutenden Leerzeichen, die die Erstellung von mehr Leerraumtextknoten verursachen könnten.

Weitere Informationen finden Sie unter Beibehalten des Leerzeichens beim Laden oder Analysieren von XML und Beibehalten des Leerzeichens beim Serialisieren.

Die Einstellung SetBaseUri hat keine Auswirkung beim Analysieren von einem String.

Dies XmlReader kann über eine gültige Zeileninformation verfügen oder nicht. Wenn Sie festlegen SetLineInfo, werden die Zeileninformationen in der XML-Struktur aus den Zeileninformationen festgelegt, die von der XmlReaderDatei gemeldet werden.

Es gibt eine Leistungsstrafe, wenn Sie das SetLineInfo Flag festlegen.

Die Zeileninformationen sind unmittelbar nach dem Laden des XML-Dokuments genau. Wenn Sie die XML-Struktur nach dem Laden des Dokuments ändern, können die Zeileninformationen bedeutungslos werden.

LINQ to XML Ladefunktionen werden erstelltXmlReader. Daher können Sie ausnahmen erfassen, die durch die Überladungsmethoden und die XmlReader.Create XmlReader Methoden ausgelöst werden, die das Dokument lesen und analysieren.

Siehe auch

Gilt für