XObject.BaseUri Egenskap

Definition

Hämtar bas-URI:n för detta XObject.

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

Egenskapsvärde

En String som innehåller bas-URI:n för detta XObject.

Exempel

I följande exempel läses bas-URI:n och radinformationen in när filen läses in. Den skriver sedan ut bas-URI:n och radinformationen.

I det här exemplet används följande XML-dokument: Xml-exempelfil: Vanlig inköpsorder (LINQ till 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

Det här exemplet genererar följande utdata:

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

Kommentarer

Med LINQ till XML kan du deserialisera XML på ett antal sätt. Du kan parsa den från en sträng, läsa in den från en fil eller läsa den från en TextReader eller en XmlReader. I alla dessa fall använder LINQ till XML en eller annan av de konkreta underklasserna för XmlReader.

XmlReader Ibland har bas-URI, och ibland inte. När du till exempel läser in från en fil XmlReader känner den till bas-URI:n, men när du läser från en XmlReader som skapades på grund av att metoden anropades Parse finns det ingen möjlighet att XmlReader rapportera en bas-URI. XML:en fanns i en sträng.

Om du vid parsning eller inläsning av XML anger SetBaseUri, begär LINQ till XML bas-URI:n för varje nod när XmlReader noden returneras. Om läsaren har bas-URI:n sparar LINQ till XML informationen med LINQ till XML-noden. Den här egenskapen returnerar den informationen. Om den underliggande XmlReader filen inte har bas-URI returnerar den här egenskapen en tom sträng.

Om du SetBaseUri anger när ett XML-träd läses in kommer det att leda till långsammare parsning.

När du ställer in bas-URI:n för ett XML-träd lägger LINQ till XML en anteckning i trädets rot. Den här egenskapen är en beräknad egenskap och navigerar upp i trädet för att hitta bas-URI:n.

Gäller för

Se även