इस XML को देखते हुए:XPath का उपयोग करके, मैं अपनी टेक्स्ट सामग्री और विशेषता के मूल्य के आधार पर नोड का चयन कैसे करूं?
<DocText>
<WithQuads>
<Page pageNumber="3">
<Word>
July
<Quad>
<P1 X="84" Y="711.25" />
<P2 X="102.062" Y="711.25" />
<P3 X="102.062" Y="723.658" />
<P4 X="84.0" Y="723.658" />
</Quad>
</Word>
<Word>
</Word>
<Word>
30,
<Quad>
<P1 X="104.812" Y="711.25" />
<P2 X="118.562" Y="711.25" />
<P3 X="118.562" Y="723.658" />
<P4 X="104.812" Y="723.658" />
</Quad>
</Word>
</Page>
</WithQuads>
मैं नोड्स इस मामले में 'जुलाई' और एक Quad/P1/एक्स गुण इस प्रकार 90 से अधिक, के पाठ है कि प्राप्त करना चाहते हैं, यह किसी भी मैच वापस नहीं करना चाहिए। हालांकि, अगर मैं जीटी (>) या एलटी (<) का उपयोग करता हूं, तो मुझे पहले शब्द तत्व पर एक मैच मिलता है। अगर मैं eq (=) का उपयोग करता हूं, तो मुझे कोई मिलान नहीं मिलता है।
तो:
//Word[text()='July' and //P1[@X < 90]]
सच वापस आ जाएगी,
//Word[text()='July' and //P1[@X > 90]]
मैं कैसे पी 1 @ एक्स विशेषता पर ठीक से इस विवश है के रूप में?
इसके अलावा, कल्पना करें कि मेरे पास अलग-अलग पेज नंबरों के लिए एकाधिक पृष्ठ तत्व हैं। मैं text()='July', [email protected] < 90
के साथ नोड्स को खोजने के लिए उपरोक्त खोज को अतिरिक्त रूप से कैसे रोकूं, और पृष्ठ @pageNumber=3
?
इस विशेष XML के साथ नोट करना एक महत्वपूर्ण बात है जो प्रत्येक पाठक के लिए स्पष्ट नहीं हो सकता है, क्योंकि यह XML एक मिश्रित सामग्री मॉडल का उपयोग करता है, यह मुश्किल है XPath के साथ तत्वों का मिलान करें। मैं हाल ही में इस मुद्दे में भाग गया और, मेरे XPath के साथ जंगली होने के नाते, यह निष्कर्ष निकालने वाला था कि जब तक मुझे माइकल के उत्तर का जवाब नहीं मिला तब तक मिश्रित सामग्री तत्वों से मेल नहीं खा सकता था। मैं मिश्रित सामग्री और XPath के साथ नुकसान के बारे में बात करने वाले किसी अन्य संदर्भ को नहीं ढूंढ पाया। –
आपके प्रश्न ने मेरे प्रश्न का उत्तर दिया। XPath में तारों के लिए 'एकल apostrophes' का उपयोग करना बहुत महत्वपूर्ण है, न कि "डबल उद्धरण चिह्न"। यह वास्तव में बहुत महत्वपूर्ण है। सुराग के लिए धन्यवाद। –