XObject.BaseUri Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bu XObjectiçin temel URI'yi alır.
public:
property System::String ^ BaseUri { System::String ^ get(); };
public string BaseUri { get; }
member this.BaseUri : string
Public ReadOnly Property BaseUri As String
Özellik Değeri
String Bu XObjectiçin temel URI'yi içeren bir .
Örnekler
Aşağıdaki örnek, dosyayı yüklerken temel URI'yi ve satır bilgilerini yükler. Ardından temel URI'yi ve satır bilgilerini yazdırır.
Bu örnekte şu XML belgesi kullanılmaktadır: Örnek XML Dosyası: Tipik Satın Alma Siparişi (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
Bu örnek aşağıdaki çıkışı oluşturur:
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
Açıklamalar
LINQ to XML kullanarak, XML'nin seri durumdan çeşitli biçimlerde çıkarabilirsiniz. Bir dizeden ayrıştırabilir, bir dosyadan yükleyebilir veya veya XmlReaderdosyasından TextReader okuyabilirsiniz. Tüm bu durumlarda, LINQ to XML beton alt sınıflarından XmlReaderbirini veya başka birini kullanır.
XmlReader Bazen temel URI'ye sahiptir ve bazen yoktur. Örneğin, bir dosyadan yüklerken, XmlReader temel URI'yi bilir, ancak yöntemini çağırdığı Parse için oluşturulan bir XmlReader kaynaktan okurken, temel URI raporlama olasılığı XmlReader yoktur; XML bir dizedeydi.
XML'yi ayrıştırırken veya yüklerken belirtirsenizSetBaseUri, LINQ to XML düğümü döndürdüğünde her düğüm için temel URI'yi XmlReader ister. Okuyucu temel URI'ye sahipse LINQ to XML bilgileri LINQ to XML düğümüyle kaydeder. Bu özellik bu bilgileri döndürür. Temel alınan XmlReader temel URI'ye sahip değilse, bu özellik boş bir dize döndürür.
XML ağacı yüklenirken ayar SetBaseUri yapıldığında daha yavaş ayrıştırma olur.
BIR XML ağacı için temel URI ayarlanırken LINQ to XML ağacın köküne bir ek açıklama ekler. Bu özellik hesaplanan bir özelliktir ve temel URI'yi bulmak için ağaçta yukarı gider.