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.
XPath sorguları bir XML belgesindeki ad alanlarının farkındadır ve öğe ve öznitelik adlarını nitelemek için ad alanı ön eklerini kullanabilir. Ad alanı ön ekine sahip öğe ve öznitelik adlarının nitelenmesi, XPath sorgusu tarafından döndürülen düğümleri yalnızca belirli bir ad alanına ait düğümlerle sınırlar.
Örneğin, ön ek books
ad alanına http://www.contoso.com/books
eşlerse, aşağıdaki XPath sorgusu /books:books/books:book
yalnızca book
ad http://www.contoso.com/books
alanındaki öğeleri seçer.
The XmlNamespaceManager
XPath sorgusunda ad alanlarını kullanmak için, IXmlNamespaceResolver sınıfı gibi XmlNamespaceManager arabiriminden türetilmiş bir nesne, XPath sorgusuna eklenecek ad alanı URI'si ve ön eki ile oluşturulur.
XmlNamespaceManager Nesnesi sorguda aşağıdaki yollardan her birinde kullanılabilir.
XmlNamespaceManager nesnesi, XPathExpression nesnesinin SetContext yöntemi kullanılarak var olan XPathExpression bir nesneyle ilişkilendirilir. Ayrıca, XPath ifadesini temsil eden bir dize ve bir XPathExpression nesnesini parametre olarak alan ve yeni bir Compile nesnesi döndüren statik XmlNamespaceManager yöntemini kullanarak yeni bir XPathExpression nesnesi de derleyebilirsiniz.
Nesnenin XmlNamespaceManager kendisi, XPath ifadesini temsil eden bir dizeyle birlikte kabul eden XPathNavigator bir sınıf yöntemine parametre olarak geçirilir.
Aşağıda, sınıfın XPathNavigator arabirimden IXmlNamespaceResolver türetilmiş bir nesneyi parametre olarak kabul eden yöntemleri yer alır.
Varsayılan Ad Alanı
Aşağıdaki XML belgesinde, boş bir ön eke sahip varsayılan ad alanı, http://www.contoso.com/books
ad alanını bildirmek için kullanılır.
<books xmlns="http://www.contoso.com/books">
<book>
<title>Title</title>
<author>Author Name</author>
<price>5.50</price>
</book>
</books>
XPath boş ön eki ad alanı olarak ele alır null
. Başka bir deyişle, XPath sorgularında yalnızca ad alanlarına eşlenen ön ekler kullanılabilir. Başka bir deyişle, XML belgesindeki bir ad alanına karşı sorgu yapmak istiyorsanız, varsayılan ad alanı olsa bile, bunun için bir ön ek tanımlamanız gerekir.
Örneğin, yukarıdaki XML belgesi için bir ön ek tanımlamadan XPath sorgusu /books/book
hiçbir sonuç döndürmez.
Bazı düğümleri ad alanında olmayan ve bazıları varsayılan ad alanında olan belgeleri sorgularken belirsizliği önlemek için bir ön ek bağlanmalıdır.
Aşağıdaki kod, varsayılan ad alanı için bir önek tanımlar ve book
ad alanından tüm http://www.contoso.com/books
öğelerini seçer.
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim query As XPathExpression = navigator.Compile("/books:books/books:book")
Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("books", "http://www.contoso.com/books")
query.SetContext(manager)
Dim nodes As XPathNodeIterator = navigator.Select(query)
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathExpression query = navigator.Compile("/books:books/books:book");
XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("books", "http://www.contoso.com/books");
query.SetContext(manager);
XPathNodeIterator nodes = navigator.Select(query);
Ayrıca bakınız
- XmlDocument
- XPathDocument
- XPathNavigator
- XPath Veri Modelini Kullanarak XML Verilerini İşleme
- XPathNavigator Kullanarak XML Verilerini Seçme
- XPathNavigator kullanarak XPath İfadelerini Değerlendirme
- XPathNavigator Kullanarak Düğümleri Eşleştirme
- XPath Sorgularıyla Belirlenen Düğüm Türleri
- Derlenmiş XPath İfadeleri