XObject.BaseUri Vlastnost

Definice

Získá základní identifikátor URI 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

Hodnota vlastnosti

String

A String který obsahuje základní identifikátor URI XObject .A String that contains the base URI for this XObject.

Příklady

Následující příklad načte základní identifikátor URI a informace o řádku při načtení souboru.The following example loads the base URI and line information as it loads the file. Pak vytiskne základní identifikátor URI a informace o řádku.It then prints the base URI and the line information.

Tento příklad používá následující dokument XML: vzorový soubor XML: typická nákupní objednávka (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  

Tento příklad vytvoří následující výstup: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  

Poznámky

Pomocí LINQ to XML lze deserializovat XML mnoha způsobem.Using LINQ to XML, you can deserialize XML in a number of fashions. Můžete ho analyzovat z řetězce, načíst ho ze souboru nebo si ho přečíst z TextReader nebo XmlReader .You can parse it from a string, load it from a file, or read it from a TextReader or an XmlReader. Ve všech těchto případech LINQ to XML používá jednu nebo jinou z konkrétních podtříd třídy XmlReader .In all of these cases, LINQ to XML uses one or another of the concrete subclasses of XmlReader.

V některých případech XmlReader má základní identifikátor URI a někdy ne.Sometimes the XmlReader has the base URI, and sometimes it does not. Například při načítání ze souboru XmlReader zná ví základní identifikátor URI, ale při čtení z objektu XmlReader , který byl vytvořen z důvodu volání Parse metody, neexistuje žádná možnost XmlReader generování sestav základního identifikátoru URI; kód XML byl v řetězci.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.

Pokud při analýze nebo načítání XML zadáte SetBaseUri , LINQ to XML bude vyžadovat základní identifikátor URI pro každý uzel, jako XmlReader vrátí uzel.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. Pokud má čtecí modul základní identifikátor URI, LINQ to XML bude informace ukládat pomocí uzlu LINQ to XML.If the reader has the base URI, LINQ to XML will save the information with the LINQ to XML node. Tato vlastnost vrátí tyto informace.This property returns that information. Pokud základní XmlReader identifikátor URI neobsahuje, vrátí tato vlastnost prázdný řetězec.If the underlying XmlReader does not have the base URI, then this property will return an empty string.

Nastavení SetBaseUri při načítání stromu XML bude mít za následek pomalejší analýzu.Setting SetBaseUri when loading an XML tree will result in slower parsing.

Při nastavení základního identifikátoru URI pro strom XML LINQ to XML vloží poznámku do kořenového adresáře stromu.When setting the base URI for an XML tree, LINQ to XML puts an annotation on the root of the tree. Tato vlastnost je vypočítaná vlastnost a naviguje strom, aby našli základní identifikátor URI.This property is a computed property, and navigates up the tree to find the base URI.

Platí pro