XElement.Parse Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
XML içeren bir dizeden bir XElement yükleyerek isteğe bağlı olarak boşluğu koruyun ve satır bilgilerini koruyun.
Aşırı Yüklemeler
Parse(String) |
XML içeren bir dizeden XElement yükleyin. |
Parse(String, LoadOptions) |
XML içeren bir dizeden bir XElement yükleyerek isteğe bağlı olarak boşluğu koruyun ve satır bilgilerini koruyun. |
Parse(String)
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
XML içeren bir dizeden 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
Döndürülenler
XML içeren dizeden doldurulan bir XElement.
Örnekler
Aşağıdaki örnek, XML içeren bir dize oluşturur. Ardından dizeyi bir XElementolarak 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ındaki boşluğu korumak istiyorsanız, parametre olarak LoadOptions alan Parse yönteminin aşırı yüklemesini kullanın. Daha fazla bilgi için bkz. XML yüklerken veya ayrıştırırken boşluğu koruma
LINQ to XML'nin yükleme işlevi XmlReaderüzerine kurulmuştur. Bu nedenle, XmlReader.Create aşırı yükleme yöntemleri ve belgeyi okuyan ve ayrıştıran XmlReader yöntemleri tarafından oluşan özel durumları yakalayabilirsiniz.
Ayrıca bkz.
- LINQ to XML'e genel bakış
Şunlara uygulanır
Parse(String, LoadOptions)
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
XML içeren bir dizeden bir XElement yükleyerek isteğe bağlı olarak boşluğu koruyun ve satır bilgilerini koruyun.
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
- options
- LoadOptions
Boşluk davranışını ve temel URI ile satır bilgilerinin yüklenip yüklenmeyeceğini belirten bir LoadOptions.
Döndürülenler
XML içeren dizeden doldurulan bir XElement.
Örnekler
Aşağıdaki örnek, bir dizeyi bir XElement iki farklı şekilde ayrıştırmaktadır: boşluk koruma ve boşluk 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, PreserveWhitespace bayrağının options
ayarlanması okuyucunun kaynak XML'deki tüm boşlukları okumasına neden olur.
XText türündeki düğümler hem önemli hem de önemsiz boşluklar için oluşturulur.
Kaynak XML girintiliyse, PreserveWhitespace bayrağının options
olarak ayarlanmaması okuyucunun kaynak XML'deki tüm önemsiz boşlukları yoksaymasına neden olur. XML ağacı, önemsiz boşluklar için herhangi bir metin düğümü olmadan oluşturulur.
Kaynak XML girintili değilse, options
'da PreserveWhitespace bayrağının ayarlanmasının hiçbir etkisi olmaz. Önemli boşluklar hala korunur ve daha fazla boşluk metin düğümü oluşturulmasına neden olabilecek önemsiz boşluk aralıkları yoktur.
Daha fazla bilgi için bkz. XML yüklerken veya ayrıştırırken boşluğu koruma
bir Stringayrıştırırken SetBaseUri ayarlanmasının hiçbir etkisi olmaz.
XmlReader geçerli bir satır bilgisi olabilir veya olmayabilir. SetLineInfoayarlarsanız, satır bilgileri xml ağacında XmlReadertarafından bildirilen satır bilgilerinden ayarlanır.
SetLineInfo bayrağını ayarlarsanız bir performans cezası vardı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'nin yükleme işlevi XmlReaderüzerine kurulmuştur. Bu nedenle, XmlReader.Create aşırı yükleme yöntemleri ve belgeyi okuyan ve ayrıştıran XmlReader yöntemleri tarafından oluşan özel durumları yakalayabilirsiniz.
Ayrıca bkz.
- LINQ to XML'e genel bakış