Saturday 15 March 2014

php - Comparing two strings in XPath lexicographically -


मेरे पास आइटम्स के साथ एक XML दस्तावेज़ है पुस्तक विशेषता के साथ .id , उदाहरण के लिए .id 'bk100', 'bk102', 'bk105', 'bk112', 'bk130' । मैं एक xpath बनाना चाहूंगा जो केवल उन आइटम्स को लौटा दे जो इस शर्त को संतुष्ट करें:

  .id & gt; 'बीके 104'  

उस आइटम को .id 'bk105', 'bk112', 'bk130' के साथ वापस करना चाहिए। मेरे पास यह है:

  xpath ("// book [@ id & gt; 'bk112']");  

लेकिन यह चाल करना नहीं लगता है क्या ऐसा करने के लिए कोई भी संशोधक है या क्या मुझे मैन्युअल रूप से इसे लागू करना है?

जोड़ा गया था एक्सपैथ 2 में, जो दुर्भाग्यवश उपलब्ध नहीं है।

आप उस चाल के साथ और कर सकते हैं।


उदाहरण:

  $ Xml = & lt; & lt; & lt; 'XML' & lt; books & gt; & Lt; पुस्तक id = "bk100" / & gt; & Lt; पुस्तक id = "bk102" / & gt; & Lt; पुस्तक id = "bk105" / & gt; & Lt; पुस्तक id = "bk112" / & gt; & Lt; पुस्तक आईडी = "बीके 130" / & gt; & Lt; / किताबें & gt; एक्सएमएल; $ Dom = नया DOMDocument (); $ Dom- & gt; loadXML ($ एक्सएमएल); $ Xpath = नया DOMXPath ($ dom); $ Xpath- & gt; registerPhpFunctions ( 'strcmp'); $ Xpath- & gt; रजिस्टर नामस्थान ("php", "http://php.net/xpath"); विदेशी मुद्रा ($ xpath- & gt; क्वेरी ("पुस्तक: [php: functionString ('strcmp', @id, 'bk104') & gt; 0]" $ नोड के रूप में) {गूंज $ dom- & gt; saveXML ($ नोड ), "\ N"; }  

आउटपुट:

  & lt; पुस्तक id = "bk105" / & gt; & Lt; पुस्तक id = "bk112" / & gt; & Lt; पुस्तक आईडी = "बीके 130" / & gt;  

अन्यथा आपको इसे मैन्युअल रूप से कार्यान्वित करने की आवश्यकता होगी।


No comments:

Post a Comment