Sdílet prostřednictvím


XElement.Parse Metoda

Definice

XElement Načtěte z řetězce, který obsahuje XML, volitelně zachovává prázdné znaky a zachovává informace o řádku.

Přetížení

Parse(String)

XElement Načtěte z řetězce, který obsahuje XML.

Parse(String, LoadOptions)

XElement Načtěte z řetězce, který obsahuje XML, volitelně zachovává prázdné znaky a zachovává informace o řádku.

Parse(String)

XElement Načtěte z řetězce, který obsahuje 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

Parametry

text
String

A String obsahující XML.

Návraty

XElement

Vyplněný XElement z řetězce, který obsahuje XML.

Příklady

Následující příklad vytvoří řetězec, který obsahuje XML. Potom řetězec parsuje do .XElement

XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");  
Console.WriteLine(xmlTree);  
Dim xmlTree As XElement = <Root><Child></Child></Root>  
Console.WriteLine(xmlTree)  

Tento příklad vytvoří následující výstup:

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

Poznámky

Tato metoda nezachová prázdné znaky. Pokud chcete zachovat prázdné znaky ve stromu XML, použijte přetížení Parse metody, která přebírá LoadOptions jako parametr. Další informace najdete v tématu Zachování prázdného místa při načítání nebo analýze XML a zachování prázdného místa při serializaci.

funkce načítání LINQ to XML je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro

Parse(String, LoadOptions)

XElement Načtěte z řetězce, který obsahuje XML, volitelně zachovává prázdné znaky a zachovává informace o řádku.

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

Parametry

text
String

A String obsahující XML.

options
LoadOptions

Určuje LoadOptions chování prázdných znaků a určuje, jestli se mají načíst základní identifikátor URI a řádkové informace.

Návraty

XElement

Vyplněný XElement z řetězce, který obsahuje XML.

Příklady

Následující příklad analyzuje řetězec XElement dvěma různými způsoby: zachování prázdných znaků a nezachovávání prázdných znaků. Potom pomocí dotazu určí počet prázdných uzlů ve výsledném stromu XML.

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)  

Tento příklad vytvoří následující výstup:

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

Následující příklad uchovává informace o řádcích při analýze řetězce.

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  

Tento příklad vytvoří následující výstup:

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

Poznámky

Pokud je zdrojový kód XML odsazený, nastavení PreserveWhitespace příznaku options způsobí, že čtenář přečte všechny prázdné znaky ve zdrojovém XML. Uzly typu XText jsou vytvořeny pro významné i nevýznamné prázdné znaky.

Pokud je zdrojový kód XML odsazený, nenastavujte PreserveWhitespace příznak, options aby čtenář ignoroval všechny nevýznamné prázdné znaky ve zdrojovém XML. Strom XML se vytvoří bez jakýchkoli textových uzlů pro nevýznamné prázdné znaky.

Pokud zdrojový kód XML není odsazený, nastavení příznaku PreserveWhitespace options nemá žádný vliv. Významné prázdné znaky jsou stále zachovány a neexistují žádné rozsahy nevýznamného prázdného místa, které by mohly způsobit vytvoření více prázdných textových uzlů.

Další informace najdete v tématu Zachování prázdného místa při načítání nebo analýze XML a zachování prázdného místa při serializaci.

Nastavení SetBaseUri nebude mít žádný vliv při analýze z objektu String.

Může XmlReader obsahovat platné informace o řádku, nebo ne. Pokud nastavíte SetLineInfo, budou informace o řádku nastaveny ve stromu XML z informací řádku, které jsou hlášeny .XmlReader

Pokud nastavíte příznak, dojde k penalizaci výkonu SetLineInfo .

Informace o řádku jsou přesné hned po načtení dokumentu XML. Pokud po načtení dokumentu upravíte strom XML, můžou se informace o řádku stát bezvýznamné.

funkce načítání LINQ to XML je postavena na XmlReader. Proto můžete zachytit všechny výjimky, které jsou vyvolán metodami XmlReader.Create přetížení a XmlReader metodami, které čtou a parsují dokument.

Viz také

Platí pro