सवाल XPath: यह जांचने के लिए कि कोई विशेषता मौजूद है या नहीं?


निम्नलिखित एक्सएमएल को देखते हुए, मैं नोड्स को खींचने के लिए XPath क्वेरी कैसे लिखूं जहां विशेषता है foo मौजूद?:

<node1>
  <node2>
    <node3 foo='bar'></node3>
    <node3></node3>
    <node3 bar='foo'></node3>
    <node3 foo='foobar'></node3>
  </node2>
</node1>

76
2017-09-17 18:21


मूल




जवाब:


छोटा एवं सुन्दर:

//*[@foo]

बेशक आपको एक और विशिष्ट अभिव्यक्ति का उपयोग करना चाहिए। लेकिन इसके साथ [@attributeName] आपको उन सभी नोड्स मिलते हैं जिनमें विशेषता है।


127
2017-09-17 18:26



आईई में काम नहीं करता है - Mykola G.
यह PHP 7.0.17 में मेरे लिए काम नहीं कर रहा है। - Jay Bienvenu


निम्न XPath अभिव्यक्ति का प्रयोग करें

//*[boolean(@foo)]

19
2017-07-18 11:21



धन्यवाद। यह आईई में काम करता है! - Mykola G.


यदि आप उपयोग करते हैं और xpath, तो यह आपकी मदद कर सकता है:

count(//*[@foo])

यह नोड / बच्चे की गिनती वापस करेगा जिसमें विशेषता है foo


8
2017-09-23 09:12