موضوع XML DOM XPathResult
- صفحه قبلی DOM XPathExpression
- صفحه بعدی DOM XSLTProcessor
نتیجه جستجوی XPath
شیء XPathResult
شیء XPathResult نمایانگر مقدار یک عبارت XPath است. این نوع شیء توسط Document.evaluate() و XPathExpression.evaluate() بازگشت. جستجوی XPath میتواند به عنوان رشته، عدد، مقدار بولین، گره و لیست گره محاسبه شود. پیادهسازی XPath میتواند به چندین روش مختلف لیست گرهها را بازگرداند، بنابراین، این شیء برای دریافت نتیجه واقعی یک جستجوی XPath پیچیدهتری را تعریف کرده است.
برای استفاده از XPathResult، ابتدا ویژگی resultType را بررسی کنید. این ویژگی یک مقادیر XPathResult را ذخیره میکند. مقدار این ویژگی به شما میگوید که باید از چه ویژگیها و روشهایی برای تعیین مقدار نتیجه استفاده کنید. فراخوانی روشهایی که برای 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
- این نتیجه یک مجموعه نقاط بدون ترتیب است که میتوان به ترتیب به آنها دسترسی داشت. در طول این فرآیند، مستند نباید تغییر کند.
- ORDERED_NODE_ITERATOR_TYPE
- نتیجه یک لیست از نقاط است که بر اساس ویژگیهای مستند مرتب شدهاند و میتوان به ترتیب به آنها دسترسی داشت. در طول این فرآیند، مستند نباید تغییر کند.
- 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 باشد و مستند تغییر کرده باشد، مقدار true دارد؛ این باعث میشود که تکرار بهروز نشود، زیرا نتایج بازگردانده شدهاند.
- 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 استفاده میشود. |
صفحات مرتبط
- صفحه قبلی DOM XPathExpression
- صفحه بعدی DOM XSLTProcessor