XObject.BaseUri Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de basis-URI op.XObject
public:
property System::String ^ BaseUri { System::String ^ get(); };
public string BaseUri { get; }
member this.BaseUri : string
Public ReadOnly Property BaseUri As String
Waarde van eigenschap
Een String die de basis-URI voor dit XObjectbevat.
Voorbeelden
In het volgende voorbeeld worden de basis-URI en regelgegevens geladen terwijl het bestand wordt geladen. Vervolgens worden de basis-URI en de regelgegevens afgedrukt.
In dit voorbeeld wordt het volgende XML-document gebruikt: XML-voorbeeldbestand: Typische inkooporder (LINQ naar 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
In dit voorbeeld wordt de volgende uitvoer gegenereerd:
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
Opmerkingen
Met LINQ naar XML kunt u XML op verschillende wijze deserialiseren. U kunt deze parseren vanuit een tekenreeks, laden uit een bestand of lezen vanuit een TextReader of een XmlReader. In al deze gevallen maakt LINQ voor XML gebruik van een of meer van de concrete subklassen van XmlReader.
Soms heeft de XmlReader basis-URI en soms niet. Bij het laden van een bestand kent de XmlReader basis-URI bijvoorbeeld, maar bij het lezen van een XmlReader bestand dat is gemaakt vanwege het aanroepen van de Parse methode, is er geen mogelijkheid om XmlReader een basis-URI te rapporteren; de XML bevindt zich in een tekenreeks.
Als u bij het parseren of laden van de XML de LINQ naar XML opgeeft SetBaseUri, wordt de basis-URI voor elk knooppunt aangevraagd wanneer het XmlReader knooppunt wordt geretourneerd. Als de lezer de basis-URI heeft, slaat LINQ naar XML de informatie op met de LINQ naar het XML-knooppunt. Deze eigenschap retourneert die informatie. Als de onderliggende XmlReader waarde niet over de basis-URI beschikt, retourneert deze eigenschap een lege tekenreeks.
Instelling SetBaseUri bij het laden van een XML-structuur leidt tot tragere parsering.
Wanneer u de basis-URI voor een XML-structuur instelt, plaatst LINQ in XML een aantekening in de hoofdmap van de structuur. Deze eigenschap is een berekende eigenschap en navigeert door de structuur om de basis-URI te vinden.