Document.createNSResolver()
يُنشئ التّابع Document.createNSResolver()
كائنًا من النّوع XPathNSResolver
الذي يستبين مجالات الأسماء مع احترام التعريفات في النّطاق (scope) لعقدة مُحدَّدة.
البنية العامة
nsResolver = document.createNSResolver(node);
node
العقدة المراد استعمالها كسياقٍ لحلّ مجال الأسماء.
nsResolver
القيمة المعادة، وهي كائنٌ من النّوع XPathNSResolver
.
ملاحظات
يتبنّى التّابع أي عقدة DOM لحلّ مجالات الأسماء لكي يتمّ تقدير (evaluate) تعبير XPath بسهولة حسب سياق العقدة ومكان ظهورها في المستند. هذا المتبنِّي يعمل كالتّابع lookupNamespaceURI
المعرّف في مواصفة DOM Level 3 على العقد في حلّ رابط URI مجال الأسماء namespaceURI
من سابقةٍ (prefix) مُعطاةٍ باستعمال المعلومات المتوافّرة حاليًّا في سلالة العقدة في وقت استدعاء التّابع lookupNamespaceURI
. ويقوم كذلك بحلّ سابقة xml
الضّمنيّة.
ملاحظة: يُعرّف XPath أسماء QNames دون سابقة لموافقَة العناصر في مجال الأسماء null
فقط. ليست هناك من طريقة في XPath للحصول على مجال الأسماء الافتراضيّ المُطبَّق على مرجع عناصر عاديّ (مثلًا، p[@id='_myid']
لـمجال الأسماء xmlns='http://www.w3.org/1999/xhtml'
). لموافقَة العناصر الافتراضيّة التي يكون مجال أسمائها مُغايرا للقيمة null
، فعليك إمّا أن تُحيل إلى عنصرٍ مُعيّن باستخدام نموذج مثل *namespace-uri()=http://www.w3.org/1999/xhtml and name()=p[@id='_myid']
(وهي طريقة تعمل جيّدًا لتعابير XPath الديناميكيّة عندما لا تكون مجالات الأسماء معروفة) أو أن تستعمل اختبارات أسماءٍ ذات سابقات (prefixed name tests)، وإنشاء حالِّ مجالات أسماء رابطٍ السابقة مع مجال الأسماء. اقرأ كيفيّة إنشاء حالّ مجالات أسماء إن أردت استعمال هذه الطريقة.
طُرح التّابع Document.createNSResolver()
في مواصفة DOM Level 3.