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.
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
Gibt zurück
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
- options
- LoadOptions
Ein LoadOptions, das Leerraumverhalten angibt und festlegt, ob Basis-URI- und Zeileninformationen geladen werden.
Gibt zurück
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.