Aracılığıyla paylaş


XElement.Parse Yöntem

Tanım

XElement XML içeren bir dizeden, isteğe bağlı olarak boş alanı koruyarak ve satır bilgilerini koruyarak bir dizeden yükleyin.

Aşırı Yüklemeler

Parse(String)

XML içeren bir dizeden bir XElement yükleyin.

Parse(String, LoadOptions)

XElement XML içeren bir dizeden, isteğe bağlı olarak boş alanı koruyarak ve satır bilgilerini koruyarak bir dizeden yükleyin.

Parse(String)

XML içeren bir dizeden bir XElement yükleyin.

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

Parametreler

text
String

String XML içeren bir.

Döndürülenler

XElement

XElement XML içeren dizeden doldurulmuş.

Örnekler

Aşağıdaki örnek XML içeren bir dize oluşturur. Ardından dizeyi bir XElementiçine ayrıştırıyor.

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

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Bu yöntem boşluğu korumaz. XML ağacında boşluk korumak istiyorsanız, parametre olarak alan LoadOptions yönteminin aşırı yüklemesini Parse kullanın. Daha fazla bilgi için bkz . XML'yi yüklerken veya ayrıştırırken boşluğu koruma ve Seri hale getirme sırasında boşluğu koruma.

LINQ to XML yükleme işlevselliği üzerine kurulmuşturXmlReader. Bu nedenle, aşırı yükleme yöntemleri ve XmlReader belgeyi XmlReader.Create okuyup ayrıştıran yöntemler tarafından oluşan özel durumları yakalayabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır

Parse(String, LoadOptions)

XElement XML içeren bir dizeden, isteğe bağlı olarak boş alanı koruyarak ve satır bilgilerini koruyarak bir dizeden yükleyin.

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

Parametreler

text
String

String XML içeren bir.

options
LoadOptions

LoadOptions Boşluk davranışını ve temel URI ile satır bilgilerinin yüklenip yüklenmeyeceğini belirten bir.

Döndürülenler

XElement

XElement XML içeren dizeden doldurulmuş.

Örnekler

Aşağıdaki örnek, bir dizeyi XElement iki farklı şekilde ayrıştırmaktadır: boşluk koruma ve boşluğu korumama. Ardından, sonuçta elde edilen XML ağacındaki boşluk düğümlerinin sayısını belirlemek için bir sorgu kullanır.

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)  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Aşağıdaki örnek, dizeyi ayrıştırdıkça satır bilgilerini korur.

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  

Bu örnek aşağıdaki çıkışı oluşturur:

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

Açıklamalar

Kaynak XML girintiliyse, bayrağının PreserveWhitespace içinde options ayarlanması okuyucunun kaynak XML'deki tüm boşlukları okumasına neden olur. Türündeki XText düğümler hem önemli hem de önemsiz boşluklar için oluşturulur.

Kaynak XML girintiliyse, bayrağını PreserveWhitespace options içinde ayarlamamak okuyucunun kaynak XML'deki tüm önemsiz boşlukları yoksaymasına neden olur. XML ağacı, önemsiz boşluk için herhangi bir metin düğümü olmadan oluşturulur.

Kaynak XML girintili değilse, bayrağının içinde options ayarlanmasının PreserveWhitespace hiçbir etkisi olmaz. Önemli boşluklar korunmaya devam eder ve daha fazla boşluk metin düğümü oluşturulmasına neden olabilecek önemsiz boşluk yayılmaz.

Daha fazla bilgi için bkz . XML'yi yüklerken veya ayrıştırırken boşluğu koruma ve Seri hale getirme sırasında boşluğu koruma.

Ayarın SetBaseUri bir String'den ayrıştırılırken hiçbir etkisi olmaz.

geçerli XmlReader bir satır bilgisine sahip olabilir veya olmayabilir. ayarlarsanız SetLineInfo, satır bilgileri TARAFıNDAN bildirilen XmlReadersatır bilgilerinden XML ağacında ayarlanır.

Bayrağı ayarlarsanız SetLineInfo bir performans cezası uygulanır.

Satır bilgileri, XML belgesi yüklendikten hemen sonra doğrulanır. Belgeyi yükledikten sonra XML ağacını değiştirirseniz, satır bilgileri anlamsız hale gelebilir.

LINQ to XML yükleme işlevselliği üzerine kurulmuşturXmlReader. Bu nedenle, aşırı yükleme yöntemleri ve XmlReader belgeyi XmlReader.Create okuyup ayrıştıran yöntemler tarafından oluşan özel durumları yakalayabilirsiniz.

Ayrıca bkz.

Şunlara uygulanır