XObject.BaseUri Eigenschap

Definitie

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.

Van toepassing op

Zie ook