XElement.Parse Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
XElement Een tekenreeks laden die XML bevat, eventueel witruimte behouden en regelgegevens behouden.
Overloads
| Name | Description |
|---|---|
| Parse(String) |
Laad een XElement tekenreeks die XML bevat. |
| Parse(String, LoadOptions) |
XElement Een tekenreeks laden die XML bevat, eventueel witruimte behouden en regelgegevens behouden. |
Parse(String)
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
Laad een XElement tekenreeks die XML bevat.
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
Parameters
Retouren
Een XElement ingevulde tekenreeks die XML bevat.
Voorbeelden
In het volgende voorbeeld wordt een tekenreeks gemaakt die XML bevat. Vervolgens wordt de tekenreeks geparseerd in een XElement.
XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = <Root><Child></Child></Root>
Console.WriteLine(xmlTree)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
<Root>
<Child></Child>
</Root>
Opmerkingen
Deze methode behoudt geen witruimte. Als u witruimte in de XML-structuur wilt behouden, gebruikt u de overbelasting van de Parse methode die als parameter wordt gebruikt LoadOptions . Zie Witruimte behouden tijdens het laden of parseren van XML en Witruimte behouden tijdens het serialiseren van witruimte voor meer informatie.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.
Zie ook
Van toepassing op
Parse(String, LoadOptions)
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
- Bron:
- XElement.cs
XElement Een tekenreeks laden die XML bevat, eventueel witruimte behouden en regelgegevens behouden.
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
Parameters
- options
- LoadOptions
Een LoadOptions die het gedrag van de witruimte aangeeft en of basis-URI en regelgegevens moeten worden geladen.
Retouren
Een XElement ingevulde tekenreeks die XML bevat.
Voorbeelden
In het volgende voorbeeld wordt een tekenreeks op twee verschillende manieren geparseerd: XElement witruimte behouden en geen witruimte behouden. Vervolgens wordt een query gebruikt om het aantal witruimteknooppunten in de resulterende XML-structuur te bepalen.
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)
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
In het volgende voorbeeld wordt regelgegevens bewaard terwijl de tekenreeks wordt geparseerd.
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
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Opmerkingen
Als de bron-XML is ingesprongen, zorgt het instellen van de PreserveWhitespace vlag options ervoor dat de lezer alle witruimte in de bron-XML leest. Knooppunten van het type XText worden gemaakt voor zowel significante als onbelangrijke witruimte.
Als de bron-XML is ingesprongen, hoeft u de PreserveWhitespace vlag niet in options te stellen, waardoor de lezer alle onbelangrijke witruimte in de bron-XML negeert. De XML-structuur wordt gemaakt zonder tekstknooppunten voor onbeduidende witruimte.
Als de bron-XML niet is ingesprongen, heeft het instellen van de PreserveWhitespace vlag options geen effect. Er blijft nog steeds aanzienlijke witruimte behouden en er zijn geen onbelangrijke witruimte die kan leiden tot het maken van meer witruimtetekstknooppunten.
Zie Witruimte behouden tijdens het laden of parseren van XML en Witruimte behouden tijdens het serialiseren van witruimte voor meer informatie.
Instelling SetBaseUri heeft geen effect bij het parseren van een String.
De XmlReader regelgegevens zijn mogelijk geldig of niet. Als u deze optie instelt SetLineInfo, wordt de regelgegevens ingesteld in de XML-structuur van de lijngegevens die door de XmlReaderregel worden gerapporteerd.
Er is een prestatiestraf als u de SetLineInfo vlag instelt.
De regelgegevens zijn direct na het laden van het XML-document nauwkeurig. Als u de XML-structuur wijzigt nadat u het document hebt geladen, kan de regelinformatie betekenisloos worden.
LinQ naar XML-laadfunctionaliteit is gebaseerd op XmlReader. Daarom kunt u eventuele uitzonderingen ondervangen die worden veroorzaakt door de XmlReader.Create overbelastingsmethoden en de XmlReader methoden die het document lezen en parseren.