Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
XPathNavigator sınıfı, veya nesnesindeki XPathDocument arasında gezinmeyi sağlayan iki grup gezinme yöntemi sunar. İlk grup, XmlDocument başlıklı konuda açıklanmaktadır. Bu konuda açıklanan ikinci küme, bir veya XPathDocument nesnesindeki XmlDocument gezinmek için kullanılır.
Öznitelik Düğümü Navigasyonu
Öznitelikler, öğenin alt öğeleri değil, bir öğenin özellikleridir. Bu ayrım önemlidir, çünkü sınıfın XPathNavigator yöntemleri, eşdüzey, üst ve alt düğümler arasında gezinmek için kullanılır.
Örneğin, MoveToPrevious ve MoveToNext yöntemleri bir öğeden bir özniteliğe veya öznitelikler arasında gezinmek için kullanılmaz. Bunun yerine özniteliklerin farklı gezinti yöntemleri vardır.
Sınıfın öznitelik gezinti yöntemleri aşağıdadır XPathNavigator .
Geçerli düğüm bir öğe olduğunda, öğesiyle ilişkili öznitelikler olup olmadığını görmek için özelliğini kullanabilirsiniz HasAttributes . Bir öğenin öznitelikleri olduğu bilindikten sonra, özniteliklere erişmek için birden çok yöntem vardır. öğesinden tek bir öznitelik almak için yöntemini kullanın GetAttribute . XPathNavigator öğesini belirli bir özniteliğe taşımak için MoveToAttribute yöntemini kullanın. Ayrıca MoveToFirstAttribute yöntemini kullanarak bir öğenin her özniteliği üzerinde dolaşabilir ve ardından MoveToNextAttribute yöntemini birden çok kez çağırabilirsiniz.
Uyarı
XPathNavigator Nesne bir öznitelik veya ad alanı düğümünde konumlandırıldığında, MoveToChild, MoveToFirst, MoveToFirstChild, MoveToFollowing, MoveToId, MoveToNext ve MoveToPrevious yöntemleri her zaman false döndürür ve XPathNavigator konumu üzerinde hiçbir etkisi yoktur. İstisnalar, MoveTo, MoveToParent ve MoveToRoot yöntemleridir.
Ad Alanı Düğümü Gezinme
Her öğenin, öğe kapsamında bir ad alanı URI'sine bağlı her ayrı ad alanı ön eki için bir ad alanı düğümü kümesi (her XML belgesinde örtük olarak bildirilen ad alanına bağlı http://www.w3.org/XML/1998/namespace XML ön eki dahil) ve öğe kapsamındaysa varsayılan ad alanı için bir ad alanı düğümü kümesi vardır. Öğe, bu ad alanı ağ düğümlerinin her birinin ebeveynidir; ancak, bir ad alanı düğümü, üst öğesinin alt öğesi değildir.
Özniteliklerde olduğu gibi, MoveToPrevious ve MoveToNext yöntemleri bir öğeden ad alanı düğümüne veya ad alanı düğümleri arasında gezinmek için kullanılmaz. Bunun yerine, ad alanı düğümlerinin farklı gezinti yöntemleri vardır.
Sınıfın ad alanı gezinti yöntemleri aşağıdadır XPathNavigator .
XML belgesindeki herhangi bir öğe için kapsamda her zaman en az bir ad alanı düğümü vardır. Bu, ön eki xml ve ad alanı URI'si http://www.w3.org/XML/1998/namespace olan ad alanı düğümüdür. Belirli bir ön ek verilen kapsamda bir ad alanı URI'sini almak için GetNamespace yöntemini kullanın. Nesneyi belirli bir ad alanı düğümüne taşımak için XPathNavigator yöntemini kullanın MoveToNamespace . Bir öğenin kapsamındaki her ad alanı düğümü üzerinde yineleme yapabilmek için önce MoveToFirstNamespace yöntemini kullanabilir, ardından MoveToNextNamespace yöntemine birden çok çağrı yapabilirsiniz.
Uyarı
XPathNavigator Nesne bir öznitelik veya ad alanı düğümünde konumlandırıldığında, MoveToChild, MoveToFirst, MoveToFirstChild, MoveToFollowing, MoveToId, MoveToNext ve MoveToPrevious yöntemleri her zaman false döndürür ve XPathNavigator konumu üzerinde hiçbir etkisi yoktur. İstisnalar, MoveTo, MoveToParent ve MoveToRoot yöntemleridir.
XPathNamespaceScope Numaralandırması
Ad alanı düğümlerinde gezinirken, MoveToFirstNamespace ve MoveToNextNamespace yöntemleri XPathNamespaceScope parametresi ile çağrılabilir. Bu yöntemler, parametresiz olarak adlandırılan karşılıklarından farklı davranır. Numaralandırma XPathNamespaceScope, All, ExcludeXml veya Local değerlerine sahiptir.
Aşağıdaki örnekler, bir XML belgesindeki çeşitli kapsamlarda MoveToFirstNamespace ve MoveToNextNamespace yöntemleri tarafından hangi ad alanlarının döndürüldüğünü gösterir.
<root>
<element1 xmlns="http://www.contoso.com" xmlns:books="http://www.contoso.com/books">
<element2 />
</element1>
</root>
Ad alanı dizisi (XPathNavigator yöntemi çağrıldıktan sonra MoveToFirstNamespace üzerine konumlandırılan ad alanı ve bunu takiben MoveToNextNamespace yöntemine yapılan bir dizi çağrı) aşağıdaki gibidir.
element2konumlandırıldığında:xmlns:books="http://www.contoso.com/books",xmlns="http://www.contoso.com", vexmlns:xml="http://www.w3.org/XML/1998/namespace".element1konumlandırıldığında:xmlns:books="http://www.contoso.com/books",xmlns="http://www.contoso.com", vexmlns:xml="http://www.w3.org/XML/1998/namespace".rootkonumuna yerleştirildiğinde:xmlns:xml="http://www.w3.org/XML/1998/namespace".
Uyarı
XPathNavigator sınıfı, ad alanı düğümlerini ters belge sırasına göre döndürür. Bu nedenle, MoveToFirstNamespace temelde geçerli kapsamdaki son ad alanı düğümüne geçer.
Aşağıdaki örnekler, bir XML belgesindeki çeşitli kapsamlarda belirtilen MoveToFirstNamespace enumerasyonuna sahip MoveToNextNamespace yöntemleri tarafından döndürülen ad alanlarını gösterir.
<root xmlns="http://www.contoso.com" xmlns:a="http://www.contoso.com/a" xmlns:b="http://www.contoso.com/b">
<child1 xmlns="" xmlns:a="urn:a">
<child2 xmlns:c="urn:c" />
</child1>
</root>
üzerinde child2konumlandırıldığında, ad alanı dizisi (yöntemi çağrıldıktan XPathNavigator sonra üzerine konumlandırılan ad alanı MoveToFirstNamespace ve ardından yönteme MoveToNextNamespace bir dizi çağrı yapılır) aşağıdaki gibidir.
All:
xmlns:c="urn:c",xmlns:a="urn:a",xmlns="",xmlns:b="http://www.contoso.com/b",xmlns:a="http://www.contoso.com/a",xmlns="http://www.contoso.com"vexmlns:xml="http://www.w3.org/XML/1998/namespace".ExcludeXml:
xmlns:c="urn:c",xmlns:a="urn:a",xmlns="",xmlns:b="http://www.contoso.com/b",xmlns:a="http://www.contoso.com/a", vexmlns="http://www.contoso.com".Local: .
xmlns:c="urn:c"
Uyarı
XPathNavigator sınıfı, ad alanı düğümlerini ters belge sırasına göre döndürür. Bu nedenle, MoveToFirstNamespace temelde geçerli kapsamdaki son ad alanı düğümüne geçer.