XObject.BaseUri Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá základní identifikátor URI pro tento 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
A String , který obsahuje základní identifikátor URI pro tento XObject.
Příklady
Následující příklad načte základní identifikátor URI a informace řádku při načtení souboru. Pak vytiskne základní identifikátor URI a informace o řádku.
Tento příklad používá následující dokument XML: Ukázkový soubor XML: Typická nákupní objednávka (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:
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 můžete deserializovat XML mnoha způsobem. Můžete ho analyzovat z řetězce, načíst ho ze souboru nebo ho číst z nebo TextReader z řetězce XmlReader. Ve všech těchto případech LINQ to XML používá jednu nebo jinou konkrétní podtřídu .XmlReader
XmlReader Někdy má základní identifikátor URI a někdy ne. Například při načítání ze souboru XmlReader zná základní identifikátor URI, ale při čtení z XmlReader vytvořené Parse metody není možné XmlReader hlásit základní identifikátor URI; XML byl v řetězci.
Pokud při analýze nebo načítání XML zadáte SetBaseUri, LINQ to XML požádá o základní identifikátor URI pro každý uzel, protože XmlReader vrátí uzel. Pokud má čtenář základní identifikátor URI, LINQ to XML uloží informace s uzlem LINQ to XML. Tato vlastnost vrátí tyto informace. Pokud podkladový identifikátor XmlReader URI nemá, vrátí tato vlastnost prázdný řetězec.
Nastavení SetBaseUri při načítání stromu XML způsobí pomalejší parsování.
Při nastavování základního identifikátoru URI pro strom XML LINQ to XML vloží poznámku do kořenového adresáře stromu. Tato vlastnost je počítaná vlastnost a přejde do stromu a vyhledá základní identifikátor URI.