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.
XElement XML içeren bir dizeden, isteğe bağlı olarak boşluğu koruyarak ve satır bilgilerini koruyarak bir dizeden yükleyin.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Parse(String) |
XElement XML içeren bir dizeden bir yükleyin. |
| Parse(String, LoadOptions) |
XElement XML içeren bir dizeden, isteğe bağlı olarak boşluğu koruyarak ve satır bilgilerini koruyarak bir dizeden yükleyin. |
Parse(String)
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
XElement XML içeren bir dizeden bir 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
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ındaki boşluğu korumak istiyorsanız, parametre olarak alan Parse yönteminin aşırı yüklemesini LoadOptions kullanın. Daha fazla bilgi için bkz . XML'yi yüklerken veya ayrıştırırken boşluklarıkoruma ve Seri hale getirirken boşlukları koruma.
LINQ to XML'nin yükleme işlevi üzerinde XmlReaderoluşturulur. Bu nedenle, aşırı yükleme yöntemleri ve XmlReader.Create belgeyi XmlReader okuyup ayrıştıran yöntemler tarafından oluşan özel durumları yakalayabilirsiniz.
Ayrıca bkz.
Şunlara uygulanır
Parse(String, LoadOptions)
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
- Kaynak:
- XElement.cs
XElement XML içeren bir dizeden, isteğe bağlı olarak boşluğu 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
- 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 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şluk koruma. 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 ayarlanması options 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 PreserveWhitespaceoptions 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, bayrağının içinde PreserveWhitespace ayarlanmasının options 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'yi yüklerken veya ayrıştırırken boşluklarıkoruma ve Seri hale getirirken boşlukları koruma.
Ayarın SetBaseUri bir String'den ayrıştırılırken hiçbir etkisi olmaz.
geçerli XmlReader bir satır bilgilerine 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ı 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 üzerinde XmlReaderoluşturulur. Bu nedenle, aşırı yükleme yöntemleri ve XmlReader.Create belgeyi XmlReader okuyup ayrıştıran yöntemler tarafından oluşan özel durumları yakalayabilirsiniz.