XElement.Parse Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Laden Sie eine XElement Zeichenfolge aus einer Zeichenfolge, die XML enthält, optional Leerraum beibehalten und Zeileninformationen beibehalten.
Überlädt
| Name | Beschreibung |
|---|---|
| Parse(String) |
Laden sie aus XElement einer Zeichenfolge, die XML enthält. |
| Parse(String, LoadOptions) |
Laden Sie eine XElement Zeichenfolge aus einer Zeichenfolge, die XML enthält, optional Leerraum beibehalten und Zeileninformationen beibehalten. |
Parse(String)
Laden sie aus XElement 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
Gibt zurück
Eine XElement aufgefüllte Zeichenfolge, die XML enthält.
Beispiele
Im folgenden Beispiel wird eine Zeichenfolge erstellt, die XML enthält. Anschließend analysiert sie 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 Leerraum in der XML-Struktur beibehalten möchten, verwenden Sie die Überladung der Methode, die Parse als Parameter verwendet LoadOptions wird. Weitere Informationen finden Sie unter Beibehalten des Leerraums beim Laden oder Analysieren von XML und Beibehalten von Leerzeichen beim Serialisieren.
LINQ to XML-Ladefunktionalität basiert auf XmlReader. Daher können Sie ausnahmen erfassen, die von den XmlReader.Create Überladungsmethoden und den XmlReader Methoden ausgelöst werden, die das Dokument lesen und analysieren.
Weitere Informationen
Gilt für:
Parse(String, LoadOptions)
Laden Sie eine XElement Zeichenfolge aus einer Zeichenfolge, die XML enthält, optional Leerraum beibehalten und Zeileninformationen beibehalten.
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
- options
- LoadOptions
Ein LoadOptions Wert, der das Leerzeichenverhalten angibt und ob Basis-URI und Zeileninformationen geladen werden sollen.
Gibt zurück
Eine XElement aufgefüllte Zeichenfolge, die XML enthält.
Beispiele
Im folgenden Beispiel wird eine Zeichenfolge auf XElement zwei verschiedene Arten analysiert: Die Beibehaltung von Leerzeichen und nicht das Beibehalten von Leerzeichen. Anschließend wird eine Abfrage verwendet, um die Anzahl der Leerraumknoten 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, während 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 der Quell-XML-Code eingerückt ist, bewirkt das Festlegen des PreserveWhitespace Flags options , dass der Leser den gesamten Leerraum im Quell-XML-Code liest. Knoten des Typs XText werden sowohl für signifikante als auch für unbedeutende Leerräume erstellt.
Wenn der Quell-XML-Code eingerückt ist, wird das PreserveWhitespace Flag options nicht festgelegt, wodurch der Leser den gesamten unbedeutenden Leerraum im Quell-XML-Code ignoriert. Die XML-Struktur wird ohne Textknoten für unbedeuteten Leerraum erstellt.
Wenn der Quell-XML-Code nicht eingerückt ist, hat das Festlegen des PreserveWhitespace Flags options keine Auswirkung. Erheblicher Leerraum bleibt erhalten, und es gibt keine Spanne von unbedeutenden Leerzeichen, die die Erstellung von mehr Leerraum-Textknoten verursachen könnten.
Weitere Informationen finden Sie unter Beibehalten des Leerraums beim Laden oder Analysieren von XML und Beibehalten von Leerzeichen beim Serialisieren.
Die Einstellung SetBaseUri hat keine Auswirkung beim Analysieren von einer String.
Möglicherweise XmlReader verfügen sie über gültige Zeileninformationen oder nicht. Wenn Sie festlegen SetLineInfo, werden die Zeileninformationen in der XML-Struktur aus den Zeileninformationen festgelegt, die von der XmlReader.
Es gibt eine Leistungseinbuße, wenn Sie die SetLineInfo Kennzeichnung 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-Ladefunktionalität basiert auf XmlReader. Daher können Sie ausnahmen erfassen, die von den XmlReader.Create Überladungsmethoden und den XmlReader Methoden ausgelöst werden, die das Dokument lesen und analysieren.