XElement.Parse Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
Návraty
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
- 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
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.