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

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), а иногда — нет. Например, при загрузке из файла базовый универсальный код ресурса (URI) знает, XmlReader но при чтении из созданного XmlReader Parse метода XmlReader невозможно сообщить базовый URI; XML-код был в строке.

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

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

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

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

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