XObject.BaseUri XObject.BaseUri XObject.BaseUri XObject.BaseUri Property

定義

この XObject のベース URI を取得します。Gets the base URI for this 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 を格納する XObjectA String that contains the base URI for this XObject.

次の例は、ファイルが読み込まれるベース URI と行情報を読み込みます。The following example loads the base URI and line information as it loads the file. ベース URI と行情報を印刷します。It then prints the base URI and the line information.

この例では、「サンプル XML ファイル: 一般的な購買発注書 (LINQ to XML)」の XML ドキュメントを使用します。This example uses the following XML document: Sample XML File: Typical Purchase Order (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  

この例を実行すると、次の出力が生成されます。This example produces the following output:

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 シリアル化できます。Using LINQ to XML, you can deserialize XML in a number of fashions. 文字列からそれを解析して、ファイルから読み込むことまたはからの読み取り、TextReaderまたはXmlReaderします。You can parse it from a string, load it from a file, or read it from a TextReader or an XmlReader. 1 つ、または別の具象サブクラスのすべてのこのような場合、LINQ to XML を使用してXmlReaderします。In all of these cases, LINQ to XML uses one or another of the concrete subclasses of XmlReader.

場合によって、XmlReaderベース URI を備え、しないことがあります。Sometimes the XmlReader has the base URI, and sometimes it does not. インスタンスのファイルから読み込むときに、XmlReaderからの読み取り時に、ベース URI を知っている、XmlReader呼び出すのために作成された、Parseメソッドの可能性はありません、 XmlReader ; のベース URI をレポートででした、XML を文字列。For instance, when loading from a file, the XmlReader knows the base URI, but when reading from an XmlReader that was created because of calling the Parse method, there is no possibility of the XmlReader reporting a base URI; the XML was in a string.

かどうか、解析や、XML を読み込み、ときに指定したSetBaseUri、LINQ to XML の各ノードのベース URI は要求、XmlReaderノードを返します。If, when parsing or loading the XML, you specify SetBaseUri, LINQ to XML will request the base URI for each node as the XmlReader returns the node. リーダーのベース URI の場合、LINQ to XML は、LINQ to XML ノードの情報を保存します。If the reader has the base URI, LINQ to XML will save the information with the LINQ to XML node. このプロパティは、その情報を返します。This property returns that information. 場合、基になるXmlReaderベース URI を持たない場合、このプロパティは空の文字列を返します。If the underlying XmlReader does not have the base URI, then this property will return an empty string.

設定SetBaseUriときに、低速の解析中に結果が XML ツリーを読み込んでいます。Setting SetBaseUri when loading an XML tree will result in slower parsing.

XML ツリーのベース URI を設定するときに、LINQ to XML は、ツリーのルートに注釈を設定します。When setting the base URI for an XML tree, LINQ to XML puts an annotation on the root of the tree. このプロパティは、計算済みプロパティは、ベース URI を検索するツリーを移動します。This property is a computed property, and navigates up the tree to find the base URI.

適用対象

こちらもご覧ください