Udostępnij za pośrednictwem


XObject.BaseUri Właściwość

Definicja

Pobiera podstawowy identyfikator URI dla tego XObjectelementu .

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

Wartość właściwości

String

Element String zawierający podstawowy identyfikator URI dla tego elementu XObject.

Przykłady

Poniższy przykład ładuje podstawowy identyfikator URI i informacje o wierszu podczas ładowania pliku. Następnie wyświetla podstawowy identyfikator URI i informacje o wierszu.

W tym przykładzie użyto następującego dokumentu XML: Przykładowy plik XML: Typowe zamówienie zakupu (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  

Ten przykład generuje następujące wyniki:

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  

Uwagi

Za pomocą LINQ to XML można deserializować kod XML w wielu modach. Możesz przeanalizować go z ciągu, załadować go z pliku lub odczytać z obiektu TextReader lub .XmlReader We wszystkich tych przypadkach LINQ to XML używa jednej lub innej podklasy betonowej .XmlReader

Czasami ma podstawowy XmlReader identyfikator URI, a czasami nie. Na przykład podczas ładowania z pliku element XmlReader zna podstawowy identyfikator URI, ale podczas odczytywania z utworzonego elementu z XmlReader powodu wywołania Parse metody nie ma możliwości XmlReader raportowania podstawowego identyfikatora URI; kod XML znajdował się w ciągu.

Jeśli podczas analizowania lub ładowania kodu XML określisz SetBaseUriwartość , LINQ to XML zażąda podstawowego identyfikatora URI dla każdego węzła, ponieważ XmlReader zwraca węzeł. Jeśli czytelnik ma podstawowy identyfikator URI, LINQ to XML zapisze informacje w węźle LINQ to XML. Ta właściwość zwraca te informacje. Jeśli podstawowy XmlReader identyfikator URI nie ma podstawowego identyfikatora URI, ta właściwość zwróci pusty ciąg.

Ustawienie SetBaseUri podczas ładowania drzewa XML spowoduje wolniejsze analizowanie.

Podczas ustawiania podstawowego identyfikatora URI drzewa XML LINQ to XML umieszcza adnotację w katalogu głównym drzewa. Ta właściwość jest właściwością obliczeniową i przechodzi w górę drzewa, aby znaleźć podstawowy identyfikator URI.

Dotyczy

Zobacz też