حدد العنصر في مساحة مع XPath
-
02-07-2019 - |
سؤال
أريد أن حدد أعلى عنصر في مستند الذي يحتوي معين مساحة (البادئة).
وبشكل أكثر تحديدا:لدي مستندات XML إما أن تبدأ مع /html/الجسم (في XHTML مساحة) أو مع واحدة من العديد من العناصر في مساحة الاسم.أنا فعليا نريد أن نزيل /html/الجسم فقط عودة الجسم محتويات أو الجذر بأكمله namespaced عنصر.
المحلول
في XPath 2.0 و XQuery 1.0 يمكنك اختبار ضد namespace prefix باستخدام في نطاق-البادئات() وظيفة في المسند.على سبيل المثال
//*[in-scope-prefixes(.)='html']
إذا كنت غير قادر على استخدام v2, في XPath 1.0 يمكنك استخدام مساحة-أوري() وظيفة لاختبار ضد مساحة الاسم نفسه.على سبيل المثال
//*[namespace-uri()='http://www.w3c.org/1999/xhtml']
نصائح أخرى
XPath التعبير الذي أريده هو:
/html:html/html:body/node()|/foo:*
حيث "html" بادئة يتم تعيينها إلى مساحة الاسم XHTML, و "فو" بادئة يتم تعيينها إلى هدفي مساحة الاسم.
لا تنتمي إلى StackOverflow