2008-09-21 22 views
12

Belli bir ad alanına (önek) sahip bir belgede en üstteki öğeyi seçmek istiyorum.XPath ile bir Ad Alanı'nda Element öğesini seçin

Daha özel olarak:/html/body (XHTML ad alanında) ile başlayan veya belirli bir ad alanındaki birkaç öğeden biriyle başlayan XML belgelerine sahibim. Etkin bir şekilde/html/body öğesini çıkarmayı ve yalnızca gövde içeriğini veya kök adındaki tüm öğeyi döndürmeyi istiyorum. İstediğim

+0

Gönderiyi yazarken, bir çalışma çözümüne rastladım; bu yüzden, topluluğa sahip olduğum soruya yanıt verip cevabı verdim. Keyfini çıkarın! –

cevap

9

XPath 2.0 ve XQuery 1.0'da, bir yüklemede in-scope-prefixes() işlevini kullanarak ad alanı önekine karşı test edebilirsiniz. , ör. Eğer v2 kullanmak cant

//*[in-scope-prefixes(.)='html'] 

, XPath 1.0 Eğer ad kendisine karşı test etmek namespace-uri() işlevini kullanabilirsiniz. , ör.

//*[namespace-uri()='http://www.w3c.org/1999/xhtml'] 
+1

olmalıdır: http: // www.w3.org/1999/xhtml' – Alp

2

XPath ifadesidir: "html" öneki XHTML ad eşleştirilmiş

/html:html/html:body/node()|/foo:* 

ve "foo" öneki hedef ad eşleştirilir.