XObject.BaseUri Özellik

Tanım

Bunun için temel URI 'yi alır XObject .Gets the base URI for this XObject.

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

StringBunun için temel URI 'yi içeren bir XObject .A String that contains the base URI for this XObject.

Örnekler

Aşağıdaki örnek, dosyayı yükleyen temel URI ve satır bilgilerini yükler.The following example loads the base URI and line information as it loads the file. Ardından temel URI ve satır bilgilerini yazdırır.It then prints the base URI and the line information.

Bu örnek, şu XML belgesini kullanır: örnek xml dosyası: tipik satın alma siparişi (LINQ to XML).This example uses the following XML document: Sample XML File: Typical Purchase Order (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 çıktıyı üretir:This example produces the following output:

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, çok sayıda Fashions içinde XML serisini kaldırabilirsiniz.Using LINQ to XML, you can deserialize XML in a number of fashions. Bu dizeyi bir dizeden ayrıştırarak bir dosyadan yükleyebilir veya bir veya ' dan okuyabilirsiniz TextReader XmlReader .You can parse it from a string, load it from a file, or read it from a TextReader or an XmlReader. Bu durumların tümünde LINQ to XML, öğesinin somut alt sınıflarının birini veya birkaçını kullanır XmlReader .In all of these cases, LINQ to XML uses one or another of the concrete subclasses of XmlReader.

Bazen XmlReader temel URI 'sine sahiptir ve bazen desteklemez.Sometimes the XmlReader has the base URI, and sometimes it does not. Örneğin, bir dosyadan yükleme yaparken, XmlReader temel URI 'yi bilir, ancak XmlReader yöntemin çağrılması nedeniyle oluşturulan öğesinden okurken, Parse temel URI 'yi raporlama IHTIMALI yoktur XmlReader ; XML bir diziydi.For instance, when loading from a file, the XmlReader knows the base URI, but when reading from an XmlReader that was created because of calling the Parse method, there is no possibility of the XmlReader reporting a base URI; the XML was in a string.

XML 'i ayrıştırırken veya yüklerken, SetBaseUri LINQ to XML, düğümü döndüren her düğüm için temel URI 'yi ister XmlReader .If, when parsing or loading the XML, you specify SetBaseUri, LINQ to XML will request the base URI for each node as the XmlReader returns the node. Okuyucunun temel URI 'SI varsa, LINQ to XML bilgileri LINQ to XML düğümle kaydeder.If the reader has the base URI, LINQ to XML will save the information with the LINQ to XML node. Bu özellik, bu bilgileri döndürür.This property returns that information. Temeldeki XmlReader taban URI 'si yoksa, bu özellik boş bir dize döndürür.If the underlying XmlReader does not have the base URI, then this property will return an empty string.

SetBaseUriBIR XML ağacını yüklerken ayarlama, daha yavaş ayrıştırmaya neden olur.Setting SetBaseUri when loading an XML tree will result in slower parsing.

Bir XML ağacının temel URI 'sini ayarlarken, LINQ to XML ağacın köküne bir ek açıklama koyar.When setting the base URI for an XML tree, LINQ to XML puts an annotation on the root of the tree. Bu özellik hesaplanan bir özelliktir ve temel URI 'yi bulmak için ağacın yukarı gider.This property is a computed property, and navigates up the tree to find the base URI.

Şunlara uygulanır