XObject.BaseUri Свойство

Определение

Получает базовый универсальный код ресурса (URI) для этого XObject.

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

Значение свойства

Объект, String содержащий базовый универсальный код ресурса (URI) для этого XObject.

Примеры

В следующем примере загружается базовый универсальный код ресурса (URI) и сведения о строке при загрузке файла. Затем он выводит базовый URI и сведения о строке.

В этом примере используется следующий XML-документ: пример XML-файла: типичный заказ на покупку (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

В примере получается следующий вывод.

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

Комментарии

С помощью LINQ to XML можно десериализировать XML в ряде способов. Его можно проанализировать из строки, загрузить ее из файла или прочитать из TextReader нее XmlReader. Во всех этих случаях LINQ to XML использует один или другой из конкретных подклассов XmlReader.

XmlReader Иногда у него есть базовый универсальный код ресурса (URI), а иногда и нет. Например, при загрузке из файла XmlReader он знает базовый универсальный код ресурса (URI), но при чтении из XmlReader созданного метода из-за вызова Parse метода нет возможности XmlReader создания базового URI; XML-код был в строке.

Если при синтаксическом анализе или загрузке XML- код SetBaseUriLINQ to XML запрашивает базовый универсальный код ресурса (URI) для каждого узла в качестве возвращаемого XmlReader узла. Если читатель имеет базовый универсальный код ресурса (URI), LINQ to XML сохранит сведения с LINQ to XML-узлом. Это свойство возвращает эти сведения. Если базовый XmlReader универсальный код ресурса (URI) отсутствует, это свойство возвращает пустую строку.

Параметр SetBaseUri при загрузке XML-дерева приведет к замедлению синтаксического анализа.

При задании базового URI для XML-дерева LINQ to XML помещает заметку в корень дерева. Это свойство является вычисляемой собственностью и перемещается по дереву, чтобы найти базовый универсальный код ресурса (URI).

Применяется к

См. также раздел