XObject.BaseUri Özellik

Tanım

Bu XObjectiçin temel URI'yi alır.

public:
 property System::String ^ BaseUri { System::String ^ get(); };
public string BaseUri { get; }
member this.BaseUri : string
Public ReadOnly Property BaseUri As String

Özellik Değeri

String

String Bu XObjectiçin temel URI'yi içeren bir .

Örnekler

Aşağıdaki örnek, dosyayı yüklerken temel URI'yi ve satır bilgilerini yükler. Ardından temel URI'yi ve satır bilgilerini yazdırır.

Bu örnekte şu XML belgesi kullanılmaktadır: Örnek XML Dosyası: Tipik Satın Alma Siparişi (LINQ to XML).

XElement po = XElement.Load("PurchaseOrder.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  
string[] splitUri = po.BaseUri.Split('/');  
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);  
Console.WriteLine();  
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 po.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 po As XElement = XElement.Load("PurchaseOrder.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
Dim splitUri() As String = po.BaseUri.Split("/"c)  
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))  
Console.WriteLine()  
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 po.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:

BaseUri: PurchaseOrder.xml  

Element Name        Line Position  
------------        ---- --------  
PurchaseOrder       2    2  
  Address           3    4  
    Name            4    6  
    Street          5    6  
    City            6    6  
    State           7    6  
    Zip             8    6  
    Country         9    6  
  Address           11   4  
    Name            12   6  
    Street          13   6  
    City            14   6  
    State           15   6  
    Zip             16   6  
    Country         17   6  
  DeliveryNotes     19   4  
  Items             20   4  
    Item            21   6  
      ProductName   22   8  
      Quantity      23   8  
      USPrice       24   8  
      Comment       25   8  
    Item            27   6  
      ProductName   28   8  
      Quantity      29   8  
      USPrice       30   8  
      ShipDate      31   8  

Açıklamalar

LINQ to XML kullanarak, XML'nin seri durumdan çeşitli biçimlerde çıkarabilirsiniz. Bir dizeden ayrıştırabilir, bir dosyadan yükleyebilir veya veya XmlReaderdosyasından TextReader okuyabilirsiniz. Tüm bu durumlarda, LINQ to XML beton alt sınıflarından XmlReaderbirini veya başka birini kullanır.

XmlReader Bazen temel URI'ye sahiptir ve bazen yoktur. Örneğin, bir dosyadan yüklerken, XmlReader temel URI'yi bilir, ancak yöntemini çağırdığı Parse için oluşturulan bir XmlReader kaynaktan okurken, temel URI raporlama olasılığı XmlReader yoktur; XML bir dizedeydi.

XML'yi ayrıştırırken veya yüklerken belirtirsenizSetBaseUri, LINQ to XML düğümü döndürdüğünde her düğüm için temel URI'yi XmlReader ister. Okuyucu temel URI'ye sahipse LINQ to XML bilgileri LINQ to XML düğümüyle kaydeder. Bu özellik bu bilgileri döndürür. Temel alınan XmlReader temel URI'ye sahip değilse, bu özellik boş bir dize döndürür.

XML ağacı yüklenirken ayar SetBaseUri yapıldığında daha yavaş ayrıştırma olur.

BIR XML ağacı için temel URI ayarlanırken LINQ to XML ağacın köküne bir ek açıklama ekler. Bu özellik hesaplanan bir özelliktir ve temel URI'yi bulmak için ağaçta yukarı gider.

Şunlara uygulanır

Ayrıca bkz.