खोज…


टिप्पणियों

XPath अभिव्यक्तियों का उपयोग XML ट्री डॉक्यूमेंट के भीतर एक या एक से अधिक नोड्स को नेविगेट करने और चुनने के लिए किया जाता है, जैसे कि एक निश्चित तत्व या विशेषता नोड का चयन करना।

इस भाषा पर संदर्भ के लिए W3C की अनुशंसा देखें।

एक XML दस्तावेज़ में एक नोडलिस्ट का मूल्यांकन

निम्नलिखित XML दस्तावेज़ को देखते हुए:

<documentation>
    <tags>
        <tag name="Java">
            <topic name="Regular expressions">
                <example>Matching groups</example>
                <example>Escaping metacharacters</example>
            </topic>
            <topic name="Arrays">
                <example>Looping over arrays</example>
                <example>Converting an array to a list</example>
            </topic>
        </tag>
        <tag name="Android">
            <topic name="Building Android projects">
                <example>Building an Android application using Gradle</example>
                <example>Building an Android application using Maven</example>
            </topic>
            <topic name="Layout resources">
                <example>Including layout resources</example>
                <example>Supporting multiple device screens</example>
            </topic>
        </tag>
    </tags>
</documentation>

निम्न जावा टैग के लिए सभी example नोड्स को पुनः प्राप्त करता है (इस विधि का उपयोग करें यदि केवल XML में XPath का मूल्यांकन एक बार किया जाता है। एक ही XML फ़ाइल में कई XPath कॉल का मूल्यांकन किए जाने पर अन्य उदाहरण देखें।)

XPathFactory xPathFactory = XPathFactory.newInstance();
XPath xPath = xPathFactory.newXPath(); //Make new XPath
InputSource inputSource = new InputSource("path/to/xml.xml"); //Specify XML file path

NodeList javaExampleNodes = (NodeList) xPath.evaluate("/documentation/tags/tag[@name='Java']//example", inputSource, XPathConstants.NODESET); //Evaluate the XPath
...

एक एक्सएमएल में कई एक्सपीथ एक्सप्रेशंस पार्सिंग

XML डॉक्यूमेंट में NodeList के मूल्यांकन के रूप में एक ही उदाहरण का उपयोग करते हुए, यहां बताया गया है कि कैसे आप कई XPath कॉल कुशलतापूर्वक करेंगे:

निम्नलिखित XML दस्तावेज़ को देखते हुए:

<documentation>
    <tags>
        <tag name="Java">
            <topic name="Regular expressions">
                <example>Matching groups</example>
                <example>Escaping metacharacters</example>
            </topic>
            <topic name="Arrays">
                <example>Looping over arrays</example>
                <example>Converting an array to a list</example>
            </topic>
        </tag>
        <tag name="Android">
            <topic name="Building Android projects">
                <example>Building an Android application using Gradle</example>
                <example>Building an Android application using Maven</example>
            </topic>
            <topic name="Layout resources">
                <example>Including layout resources</example>
                <example>Supporting multiple device screens</example>
            </topic>
        </tag>
    </tags>
</documentation>

यह है कि आप एक दस्तावेज़ में कई अभिव्यक्तियों का मूल्यांकन करने के लिए XPath का उपयोग कैसे करेंगे:

XPath xPath = XPathFactory.newInstance().newXPath(); //Make new XPath
DocumentBuilder builder = DocumentBuilderFactory.newInstance();
Document doc = builder.parse(new File("path/to/xml.xml")); //Specify XML file path

NodeList javaExampleNodes = (NodeList) xPath.evaluate("/documentation/tags/tag[@name='Java']//example", doc, XPathConstants.NODESET); //Evaluate the XPath
xPath.reset(); //Resets the xPath so it can be used again
NodeList androidExampleNodes = (NodeList) xPath.evaluate("/documentation/tags/tag[@name='Android']//example", doc, XPathConstants.NODESET); //Evaluate the XPath

...

एक्सएमएल में एकल XPath अभिव्यक्ति को कई बार पार्स करना

इस मामले में, आप मूल्यांकन से पहले संकलित अभिव्यक्ति चाहते हैं, ताकि evaluate लिए प्रत्येक कॉल समान अभिव्यक्ति को compile न करें। सरल वाक्यविन्यास होगा:

XPath xPath = XPathFactory.newInstance().newXPath(); //Make new XPath
XPathExpression exp = xPath.compile("/documentation/tags/tag[@name='Java']//example");
DocumentBuilder builder = DocumentBuilderFactory.newInstance();
Document doc = builder.parse(new File("path/to/xml.xml")); //Specify XML file path

NodeList javaExampleNodes = (NodeList) exp.evaluate(doc, XPathConstants.NODESET); //Evaluate the XPath from the already-compiled expression

NodeList javaExampleNodes2 = (NodeList) exp.evaluate(doc, XPathConstants.NODESET); //Do it again

कुल मिलाकर, XPathExpression.evaluate() XPath.evaluate() लिए दो कॉल XPath.evaluate() लिए दो कॉल की तुलना में बहुत अधिक कुशल XPath.evaluate()



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow