XObject.BaseUri プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
この XObject のベース URI を取得します。
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 を逆シリアル化できます。 文字列から解析したり、ファイルから読み込んだり、TextReaderXmlReaderまたは . これらのすべてのケースで、LINQ to XMLは 1 つまたは複数の具体的なサブクラスXmlReaderを使用します。
XmlReaderベース URI を持つ場合もあれば、そうでない場合もあります。 たとえば、ファイルから読み込む場合、XmlReaderベース URI は認識されますが、メソッドを呼び出Parseしたために作成された URI からXmlReader読み取るときに、ベース URI を報告する可能性XmlReaderはありません。XML は文字列に含まれています。
XML の解析または読み込み時に、LINQ to XML指定SetBaseUriすると、ノードが返されるときに各ノードのXmlReaderベース URI が要求されます。 リーダーにベース URI がある場合、LINQ to XMLはLINQ to XML ノードに情報を保存します。 このプロパティは、その情報を返します。 基になる URI XmlReader がない場合、このプロパティは空の文字列を返します。
XML ツリーを読み込むときに設定 SetBaseUri すると、解析が遅くなります。
XML ツリーのベース URI を設定する場合、LINQ to XMLはツリーのルートに注釈を配置します。 このプロパティは計算プロパティであり、ツリーを上に移動してベース URI を見つけます。