سؤال

أريد أن حدد أعلى عنصر في مستند الذي يحتوي معين مساحة (البادئة).

وبشكل أكثر تحديدا:لدي مستندات 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, و "فو" بادئة يتم تعيينها إلى هدفي مساحة الاسم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top