مثلث XPathResult XML DOM

نتيجة استعلام XPath

عنصر XPathResult

يعبر عن قيمة استعلام XPath Document.evaluate() و XPathExpression.evaluate() العودة. استعلام XPath يمكن حسابه كخطاطة، رقم، قيمة منطقية، عقدة أو قائمة بعقدات. يمكن أن يستخدم تحقيق XPath عدة طرق مختلفة لتحويل قائمة العقدات، لذا تم تعريف API المعقدة بعض الشيء لهذا الهدف للحصول على نتائج استعلام XPath الفعلية.

للحصول على XPathResult، يجب التحقق أولاً من خاصية resultType. سيتم حفظ XPathResult ثابت. هذا القيمة تخبرك بما يجب استخدامه لتحديد قيمة النتيجة. سيؤدي استدعاء طريقة ليست معرفة للresultType الحالي أو قراءة خاصية ليست معرفة للresultType الحالي إلى استثناء.

لا يدعم IE API XPathResult. للحصول على تنفيذ XPath في IE، راجع Node.selectNodes() و Node.selectSingleNode() .

معلمات ثابتة كائن XPathResult

تعريف هذه المعلمة الثابتة نوعًا محتملًا للبحث XPath. يتم حفظ هذه القيمة في خاصية resultType من كائن XPathResult، لتحديد أي نوع من النتائج يحفظ الكائن. يتم استخدام هذه المعلمات الثابتة مع Document.evaluate() و XPathExpression.evaluate() لتحديد نوع النتيجة المتوقعة.

تلك المعلمات الثابتة وقياساتها كالتالي:

ANY_TYPE
تمامًا مثل تقديم هذه القيمة إلى Document.evaluate() أو XPathExpression.evaluate() لتعيين نوع النتيجة المقبولة. لا يتم تعيين قيمة خاصية resultType هذه.
NUMBER_TYPE
numbervalue تحفظ النتيجة.
STRING_TYPE
stringvalue تحفظ النتيجة.
BOOLEAN_TYPE
booleanValue تحفظ النتيجة.
UNORDERED_NODE_ITERATOR_TYPE
نتيجة هي مجموعة غير مرتبة من العقد، يمكن الوصول إليها تدريجيًا عن طريق تكرار استدعاء iterateNext() حتى يتم العودة على null. يجب ألا يتم تعديل المستند أثناء هذه العملية.
ORDERED_NODE_ITERATOR_TYPE
نتيجة هي قائمة العقد، مرتبة وفقًا للصفات في المستند، يمكن الوصول إليها تدريجيًا عن طريق تكرار استدعاء iterateNext() حتى يتم العودة على null. يجب ألا يتم تعديل المستند أثناء هذه العملية.
UNORDERED_NODE_SNAPSHOT_TYPE
نتيجة هو قائمة من العقد الوصول العشوائي. يتم تحديد طول القائمة من خلال خاصية snapshotLength، ويقوم طريقة snapshotItem() بتقديم العقد المحدد بالأصغر. قد لا تكون العقد متسلسلة كما تظهر في مستند. لأن النتيجة هي "مقتطف"، لذا حتى إذا تغير المستند، تبقى صالحة.
ORDERED_NODE_SNAPSHOT_TYPE
هذه النتيجة هي قائمة من العقد التي يمكن الوصول إليها عشوائياً، مثل UNORDERED_NODE_SNAPSHOT_TYPE، ولكن القائمة مرتبة وفقًا للترتيب في المستند.
ANY_UNORDERED_NODE_TYPE
يرتبط singleNodeValue بمحطة تطابق الاستعلام، وإذا لم يكن هناك محطة تطابق، فإنها تكون null. إذا كان هناك عدة محطات تطابق، يمكن أن يكون singleNodeValue أي محطة تطابق.
FIRST_ORDERED_NODE_TYPE
يحفظ singleNodeValue العقد الأول في المستند الذي يطابق الاستعلام، وإذا لم يكن هناك عقد تطابق، فإنها تكون null.

خصائص الكائن XPathResult

العديد من الخصائص هنا تكون فعالة فقط عندما يحفظ resultType قيمة معينة. إذا تم الوصول إلى الخاصية غير المحددة لل resultType الحالي، فإنها تؤدي إلى استثنائية.

booleanValue
عندما يكون resultType من نوع BOOLEAN_TYPE، يتم حفظ قيمة النتيجة.
invalidIteratorState
إذا كان resultType من قيم إشارة ITERATOR_TYPE وتم تعديل المستند، فإنها تكون صحيحة؛ تجعل الاستدلال غير صالح لأن النتيجة تم العودة.
numberValue
عندما يكون resultType من نوع NUMBER_TYPE، يتم حفظ قيمة النتيجة.
resultType
استخدام XPath للبحث عن نوع النتيجة التي سيتم العودة. قيمته هي واحدة من القيم المذكورة أعلاه. يخبرك قيمة هذه الخاصية أي خصائص أخرى ومتغيرات يمكن استخدامها.
singleNodeValue
عندما يكون resultType من نوع XPathResult.ANY_UNORDERED_NODE_TYPE أو XPathResult.FIRST_UNORDERED_NODE_TYPE، يتم حفظ قيمة النتيجة.
snapshotLength
عندما يكون resultType من نوع UNORDERED_NODE_SNAPSHOT_TYPE أو ORDERED_NODE_ITERATOR_TYPE، يتم تحديد عدد العقد المطلوب العودة. يتم استخدام هذه الخاصية مع snapshotItem().
stringValue
عندما يكون resultType هو STRING_TYPE، يتم حفظ قيمة النتيجة.

طرق مثلث XPathResult

طريقة وصف
iterateNext() إذا كان resultType هو UNORDERED_NODE_ITERATOR_TYPE أو ORDERED_NODE_ITERATOR_TYPE، استخدم هذه الطريقة.
snapshotItem() يُرجى العثور على العنصر في قائمة النتائج المحددة بالفهرس. يمكن استخدام هذه الطريقة فقط عندما يكون resultType هو UNORDERED_NODE_SNAPSHOT_TYPE أو ORDERED_NODE_SNAPSHOT_TYPE. يتم استخدام خاصية snapshotLength مع هذه الطريقة.

الصفحات ذات الصلة

Document.evaluate() و XPathExpression.evaluate()