XDocument.Load 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.
URI tarafından belirtilen bir dosyadan, bir veya dosyasından XDocumentyeni TextReader bir XmlReaderoluşturur.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| Load(Stream) |
Belirtilen akışı kullanarak yeni XDocument bir örnek oluşturur. |
| Load(TextReader) |
bir sürümünden yeni XDocument bir TextReaderoluşturur. |
| Load(String) |
Bir dosyadan yeni XDocument bir oluşturur. |
| Load(XmlReader) | |
| Load(Stream, LoadOptions) |
Belirtilen akışı kullanarak, isteğe bağlı olarak boşluk koruyarak, temel URI'yi ayarlayarak ve satır bilgilerini koruyarak yeni XDocument bir örnek oluşturur. |
| Load(TextReader, LoadOptions) |
bir sürümünden XDocumentyeni TextReader bir oluşturur; isteğe bağlı olarak boşluğu korur, temel URI'yi ayarlar ve satır bilgilerini korur. |
| Load(String, LoadOptions) |
İsteğe bağlı olarak boşluk koruyarak, temel URI'yi ayarlayarak ve satır bilgilerini koruyarak dosyadan yeni XDocument bir dosya oluşturur. |
| Load(XmlReader, LoadOptions) |
bir 'den XDocumentbir XmlReader yükler, isteğe bağlı olarak temel URI'yi ayarlar ve satır bilgilerini korur. |
Açıklamalar
Bu yöntemin aşırı yüklemelerinden birini kullanarak bir dosyasından, bir XDocumentveya TextReaderbir dosyasından yükleyebilirsinizXmlReader.
XML içeren bir XDocument dizeden oluşturmak için kullanın Parse.
Load(Stream)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
Belirtilen akışı kullanarak yeni XDocument bir örnek oluşturur.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream);
public static System.Xml.Linq.XDocument Load(System.IO.Stream stream);
static member Load : System.IO.Stream -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream) As XDocument
Parametreler
- stream
- Stream
XML verilerini içeren akış.
Döndürülenler
XDocument Akışta yer alan verileri okuyan bir nesne.
Açıklamalar
Yük seçeneklerini denetlemek istiyorsanız, parametre olarak alan Load aşırı yüklemeyi kullanınLoadOptions.
LINQ to XML'nin yükleme işlevi üzerine kurulmuştur XmlReader. 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.
üzerinde değişiklik XmlReaderSettingsyapmak zorundaysanız şu adımları izleyin:
XmlReader Parametre olarak alan Create aşırı yüklemelerden birini XmlReaderSettings çağırarak bir oluşturun.
XmlReader parametresi olarak alan Load aşırı yüklemelerinden XDocument birine XmlReader geçirin.
Şunlara uygulanır
Load(TextReader)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
bir sürümünden yeni XDocument bir TextReaderoluşturur.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader);
public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader);
static member Load : System.IO.TextReader -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader) As XDocument
Parametreler
- textReader
- TextReader
TextReader için XDocumentiçeriği içeren bir.
Döndürülenler
XDocument Belirtilen TextReaderöğesinin içeriğini içeren bir .
Örnekler
Aşağıdaki örnek, içinden bir StringReaderbelge oluşturur.
TextReader tr = new StringReader("<Root>Content</Root>");
XDocument doc = XDocument.Load(tr);
Console.WriteLine(doc);
Dim tr As TextReader = New StringReader("<Root>Content</Root>")
Dim doc As XDocument = XDocument.Load(tr)
Console.WriteLine(doc)
Bu örnek aşağıdaki çıkışı oluşturur:
<Root>Content</Root>
Açıklamalar
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.
- Parse
- Save
- WriteTo(XmlWriter)
- LINQ to XML'e genel bakış
- XDocument sorgulama ve XElement sorgulama karşılaştırması
Şunlara uygulanır
Load(String)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
Bir dosyadan yeni XDocument bir oluşturur.
public:
static System::Xml::Linq::XDocument ^ Load(System::String ^ uri);
public static System.Xml.Linq.XDocument Load(string uri);
static member Load : string -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String) As XDocument
Parametreler
Döndürülenler
XDocument Belirtilen dosyanın içeriğini içeren bir.
Örnekler
Aşağıdaki örnekte bir XDocument dosyadan nasıl yüklenecek gösterilmektedir.
Bu örnekte aşağıdaki XML belgesi kullanılır:
Örnek XML Dosyası: Tipik Satın Alma Siparişi (LINQ to XML)
XDocument doc = XDocument.Load("PurchaseOrder.xml");
Console.WriteLine(doc);
Dim doc As XDocument = XDocument.Load("PurchaseOrder.xml")
Console.WriteLine(doc)
Bu örnek aşağıdaki çıkışı oluşturur:
<PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
<Address Type="Shipping">
<Name>Ellen Adams</Name>
<Street>123 Maple Street</Street>
<City>Mill Valley</City>
<State>CA</State>
<Zip>10999</Zip>
<Country>USA</Country>
</Address>
<Address Type="Billing">
<Name>Tai Yee</Name>
<Street>8 Oak Avenue</Street>
<City>Old Town</City>
<State>PA</State>
<Zip>95819</Zip>
<Country>USA</Country>
</Address>
<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>
<Items>
<Item PartNumber="872-AA">
<ProductName>Lawnmower</ProductName>
<Quantity>1</Quantity>
<USPrice>148.95</USPrice>
<Comment>Confirm this is electric</Comment>
</Item>
<Item PartNumber="926-AA">
<ProductName>Baby Monitor</ProductName>
<Quantity>2</Quantity>
<USPrice>39.98</USPrice>
<ShipDate>1999-05-21</ShipDate>
</Item>
</Items>
</PurchaseOrder>
Açıklamalar
Bu yöntem, XML'yi bir XML ağacına okumak için temel alınan XmlReader bir kullanır.
XML içeren bir Parse dizeden bir oluşturmak için kullanınXDocument.
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.
- Parse
- Save
- WriteTo(XmlWriter)
- LINQ to XML'e genel bakış
- XDocument sorgulama ve XElement sorgulama karşılaştırması
Şunlara uygulanır
Load(XmlReader)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
public:
static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader);
public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader);
static member Load : System.Xml.XmlReader -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader) As XDocument
Parametreler
Döndürülenler
XDocument Belirtilen XmlReaderöğesinin içeriğini içeren bir .
Örnekler
Aşağıdaki örnek bir DOM belgesi oluşturur, DOM belgesinden bir XmlNodeReader oluşturur, kullanarak XDocumentbir XmlNodeReader oluşturur.
// Create a DOM document with some content.
XmlDocument doc = new XmlDocument();
XmlElement child = doc.CreateElement("Child");
child.InnerText = "child contents";
XmlElement root = doc.CreateElement("Root");
root.AppendChild(child);
doc.AppendChild(root);
// create a reader and move to the content
using (XmlNodeReader nodeReader = new XmlNodeReader(doc)) {
// the reader must be in the Interactive state in order to
// create a LINQ to XML tree from it.
nodeReader.MoveToContent();
XDocument xRoot = XDocument.Load(nodeReader);
Console.WriteLine(xRoot);
}
' Create a DOM document with some content.
Dim doc As XmlDocument = New XmlDocument()
Dim child As XmlElement = doc.CreateElement("Child")
child.InnerText = "child contents"
Dim root As XmlElement = doc.CreateElement("Root")
root.AppendChild(child)
doc.AppendChild(root)
' create a reader and move to the content
Using nodeReader = New XmlNodeReader(doc)
' the reader must be in the Interactive state in order to
' create a LINQ to XML tree from it.
nodeReader.MoveToContent()
Dim xRoot As XDocument = XDocument.Load(nodeReader)
Console.WriteLine(xRoot)
End Using
Bu örnek aşağıdaki çıkışı oluşturur:
<Root>
<Child>child contents</Child>
</Root>
Açıklamalar
Bu yöntemin olası kullanımlarından biri, LINQ to XML ağacında dom belgesinin bir kopyasını oluşturmaktır. Bunu yapmak için bir DOM belgesinden bir XmlNodeReader oluşturur ve ardından oluşturmak için XmlNodeReaderöğesini XDocument kullanırsınız.
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.
- Parse
- Save
- WriteTo(XmlWriter)
- LINQ to XML'e genel bakış
- XDocument sorgulama ve XElement sorgulama karşılaştırması
Şunlara uygulanır
Load(Stream, LoadOptions)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
Belirtilen akışı kullanarak, isteğe bağlı olarak boşluk koruyarak, temel URI'yi ayarlayarak ve satır bilgilerini koruyarak yeni XDocument bir örnek oluşturur.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::Stream ^ stream, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.IO.Stream stream, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.Stream * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (stream As Stream, options As LoadOptions) As XDocument
Parametreler
- stream
- Stream
XML verilerini içeren akış.
- options
- LoadOptions
LoadOptions Temel URI'nin ve satır bilgilerinin yüklenip yüklenmeyeceğini belirten bir.
Döndürülenler
XDocument Akışta yer alan verileri okuyan bir nesne.
Açıklamalar
LINQ to XML'nin yükleme işlevi üzerine kurulmuştur XmlReader. 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.
üzerinde değişiklik XmlReaderSettingsyapmak zorundaysanız şu adımları izleyin:
XmlReader Parametre olarak alan Create aşırı yüklemelerden birini XmlReaderSettings çağırarak bir oluşturun.
XmlReader parametresi olarak alan Load aşırı yüklemelerinden XDocument birine XmlReader geçirin.
Şunlara uygulanır
Load(TextReader, LoadOptions)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
bir sürümünden XDocumentyeni TextReader bir oluşturur; isteğe bağlı olarak boşluğu korur, temel URI'yi ayarlar ve satır bilgilerini korur.
public:
static System::Xml::Linq::XDocument ^ Load(System::IO::TextReader ^ textReader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.IO.TextReader textReader, System.Xml.Linq.LoadOptions options);
static member Load : System.IO.TextReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (textReader As TextReader, options As LoadOptions) As XDocument
Parametreler
- textReader
- TextReader
TextReader için XDocumentiçeriği 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
XDocument Belirtilen TextReaderöğesinden okunan XML'yi içeren bir .
Örnekler
Aşağıdaki örnek, içinden bir StringReaderbelge oluşturur.
TextReader sr;
int whiteSpaceNodes;
sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree1 = XDocument.Load(sr, LoadOptions.None);
sr.Close();
whiteSpaceNodes = xmlTree1
.Element("Root")
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes);
sr = new StringReader("<Root> <Child> </Child> </Root>");
XDocument xmlTree2 = XDocument.Load(sr, LoadOptions.PreserveWhitespace);
sr.Close();
whiteSpaceNodes = xmlTree2
.Element("Root")
.DescendantNodesAndSelf()
.OfType<XText>()
.Where(tNode => tNode.ToString().Trim().Length == 0)
.Count();
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes);
Dim sr As TextReader
Dim whiteSpaceNodes As Integer
sr = New StringReader("<Root> <Child> </Child> </Root>")
Dim xmlTree1 As XDocument = XDocument.Load(sr, LoadOptions.None)
sr.Close()
whiteSpaceNodes = xmlTree1 _
.Element("Root") _
.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)
sr = New StringReader("<Root> <Child> </Child> </Root>")
Dim xmlTree2 As XDocument = XDocument.Load(sr, LoadOptions.PreserveWhitespace)
sr.Close()
whiteSpaceNodes = xmlTree2 _
.Element("Root") _
.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çı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.
XML içeren bir Parse dizeden bir oluşturmak için kullanınXElement.
ayarı SetBaseUri bir TextReader'den yüklenirken geçerli değil.
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.
Ayrıca bkz.
- Parse
- Save
- WriteTo(XmlWriter)
- LINQ to XML'e genel bakış
- XDocument sorgulama ve XElement sorgulama karşılaştırması
Şunlara uygulanır
Load(String, LoadOptions)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
İsteğe bağlı olarak boşluk koruyarak, temel URI'yi ayarlayarak ve satır bilgilerini koruyarak dosyadan yeni XDocument bir dosya oluşturur.
public:
static System::Xml::Linq::XDocument ^ Load(System::String ^ uri, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(string uri, System.Xml.Linq.LoadOptions options);
static member Load : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (uri As String, options As LoadOptions) As XDocument
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
XDocument Belirtilen dosyanın içeriğini içeren bir.
Örnekler
Aşağıdaki örnekte bir XDocument dosyadan nasıl yüklenecek gösterilmektedir.
Bu örnekte aşağıdaki XML belgesi kullanılır:
Örnek XML Dosyası: Tipik Satın Alma Siparişi (LINQ to XML)
XDocument doc1 = XDocument.Load("PurchaseOrder.xml", LoadOptions.None);
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count());
XDocument doc2 = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace);
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count());
Dim doc1 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.None)
Console.WriteLine("nodes if not preserving whitespace: {0}", doc1.DescendantNodes().Count())
Dim doc2 As XDocument = XDocument.Load("PurchaseOrder.xml", LoadOptions.PreserveWhitespace)
Console.WriteLine("nodes if preserving whitespace: {0}", doc2.DescendantNodes().Count())
Bu örnek aşağıdaki çıkışı oluşturur:
nodes if not preserving whitespace: 48
nodes if preserving whitespace: 82
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.
XML içeren bir Parse dizeden bir oluşturmak için kullanınXDocument.
ve SetBaseUri bayraklarını ayarlarsanız SetLineInfo bir performans cezası vardır.
Temel URI ve satır bilgileri, XML belgesi yüklendikten hemen sonra doğru. Belgeyi yükledikten sonra XML ağacını değiştirirseniz, temel URI ve 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.
Ayrıca bkz.
- Parse
- Save
- WriteTo(XmlWriter)
- LINQ to XML'e genel bakış
- XDocument sorgulama ve XElement sorgulama karşılaştırması
Şunlara uygulanır
Load(XmlReader, LoadOptions)
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
- Kaynak:
- XDocument.cs
public:
static System::Xml::Linq::XDocument ^ Load(System::Xml::XmlReader ^ reader, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XDocument Load(System.Xml.XmlReader reader, System.Xml.Linq.LoadOptions options);
static member Load : System.Xml.XmlReader * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XDocument
Public Shared Function Load (reader As XmlReader, options As LoadOptions) As XDocument
Parametreler
- options
- LoadOptions
LoadOptions Temel URI'nin ve satır bilgilerinin yüklenip yüklenmeyeceğini belirten bir.
Döndürülenler
XDocument Belirtilen XmlReaderöğesinden okunan XML'yi içeren bir .
Örnekler
Aşağıdaki örnek, içinden XmlReaderyüklemiş olduğu satır bilgilerini yükler. Ardından satır bilgilerini yazdırır.
string markup =
@"<Root>
<Child>
<GrandChild/>
</Child>
</Root>";
// Create a reader and move to the content.
using (XmlReader nodeReader = XmlReader.Create(new StringReader(markup)))
{
// the reader must be in the Interactive state in order to
// Create a LINQ to XML tree from it.
nodeReader.MoveToContent();
XDocument xRoot = XDocument.Load(nodeReader, 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.Elements("Root").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>"
' Create a reader and move to the content.
Using nodeReader As XmlReader = XmlReader.Create(New StringReader(markup))
' The reader must be in the Interactive state in order to
' create a LINQ to XML tree from it.
nodeReader.MoveToContent()
Dim xRoot As XDocument = XDocument.Load(nodeReader, 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.Elements("Root").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
End Using
Bu örnek aşağıdaki çıkışı oluşturur:
Element Name Line Position
------------ ---- --------
Root 1 2
Child 2 6
GrandChild 3 10
Açıklamalar
DOM belgesinden bir XmlNodeReader oluşturup oluşturmak için XmlNodeReaderöğesini kullanarakXElement, bu yöntem LINQ to XML ağacında dom belgesinin kopyasını oluşturmak için kullanılabilir.
XML içeren bir Parse dizeden bir oluşturmak için kullanınXDocument.
ayarı PreserveWhitespace bir XmlReader'den yüklenirken geçerli değil. XmlReader, boşluk okuyacak veya okumayacak şekilde yapılandırılacaktır. LINQ to XML ağacı okuyucunun ortaya çıkaracağı boşluk düğümleriyle doldurulur. Ayarlanıp ayarlanmadığına PreserveWhitespace bakılmaksızın bu davranış olacaktır.
geçerli XmlReader bir temel URI'ye sahip olabilir veya olmayabilir. ayarlarsanız SetBaseUri, temel URI, tarafından XmlReaderbildirilen temel URI'den XML ağacında ayarlanır.
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.