XElement.Parse Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läs in en XElement från en sträng som innehåller XML, om du vill bevara tomt utrymme och behålla radinformation.
Överlagringar
| Name | Description |
|---|---|
| Parse(String) |
Läs in en XElement från en sträng som innehåller XML. |
| Parse(String, LoadOptions) |
Läs in en XElement från en sträng som innehåller XML, om du vill bevara tomt utrymme och behålla radinformation. |
Parse(String)
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
Läs in en XElement från en sträng som innehåller 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
Parametrar
Returer
En XElement ifylld från strängen som innehåller XML.
Exempel
I följande exempel skapas en sträng som innehåller XML. Sedan parsar den strängen till en XElement.
XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");
Console.WriteLine(xmlTree);
Dim xmlTree As XElement = <Root><Child></Child></Root>
Console.WriteLine(xmlTree)
Det här exemplet genererar följande utdata:
<Root>
<Child></Child>
</Root>
Kommentarer
Den här metoden bevarar inte tomt utrymme. Om du vill bevara tomt utrymme i XML-trädet använder du överlagringen av metoden Parse som tar LoadOptions som parameter. Mer information finns i Bevara tomt utrymme vid inläsning eller parsning av XML och Bevara tomt utrymme vid serialisering.
LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.
Se även
Gäller för
Parse(String, LoadOptions)
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
- Källa:
- XElement.cs
Läs in en XElement från en sträng som innehåller XML, om du vill bevara tomt utrymme och behålla radinformation.
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
Parametrar
- options
- LoadOptions
A LoadOptions som anger beteende för tomt utrymme och om bas-URI och radinformation ska läsas in.
Returer
En XElement ifylld från strängen som innehåller XML.
Exempel
I följande exempel parsas en sträng till ett XElement på två olika sätt: bevara tomt utrymme och inte bevara tomt utrymme. Sedan används en fråga för att fastställa antalet blankstegsnoder i det resulterande XML-trädet.
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)
Det här exemplet genererar följande utdata:
Count of white space nodes (not preserving whitespace): 0
Count of white space nodes (preserving whitespace): 3
I följande exempel bevaras radinformation när strängen parsas.
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
Det här exemplet genererar följande utdata:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Kommentarer
Om käll-XML:en är indragen gör inställningen PreserveWhitespace av flaggan i options att läsaren läser allt tomt utrymme i käll-XML:en. Noder av typen XText skapas för både betydande och obetydligt tomt utrymme.
Om käll-XML:en är indragen, gör inte inställningen PreserveWhitespace av flaggan i options att läsaren ignorerar allt obetydligt tomt utrymme i käll-XML:en. XML-trädet skapas utan textnoder för obetydligt tomt utrymme.
Om käll-XML inte är indraget har det ingen effekt att ange PreserveWhitespace flaggan i options . Betydande tomt utrymme bevaras fortfarande, och det finns inga intervall med obetydligt tomt utrymme som kan orsaka skapandet av fler blankstegstextnoder.
Mer information finns i Bevara tomt utrymme vid inläsning eller parsning av XML och Bevara tomt utrymme vid serialisering.
Inställningen SetBaseUri har ingen effekt när du parsar från en String.
Kan XmlReader ha en giltig radinformation eller inte. Om du anger SetLineInfoanges radinformationen i XML-trädet från den radinformation som rapporteras av XmlReader.
Det finns ett prestandastraff om du anger SetLineInfo flaggan.
Radinformationen är korrekt omedelbart efter att XML-dokumentet har lästs in. Om du ändrar XML-trädet när du har läst in dokumentet kan radinformationen bli meningslös.
LINQ till XML:s inläsningsfunktioner bygger på XmlReader. Därför kan du fånga eventuella undantag som genereras av överlagringsmetoderna XmlReader.Create och de XmlReader metoder som läser och parsar dokumentet.