& lt; चालान & gt; & LT; ओ बीएस & gt; & LT; ओब & gt; & LT; कोड & gt; एबीसी & lt; / कोड & gt; & Lt; / ओब & gt; & LT; ओब & gt; & LT; कोड & gt; 123 & lt; / कोड & gt; & Lt; / ओब & gt; & Lt; / ओ बीएस & gt; & Lt; / चालान & gt; & LT; चालान & gt; & LT; ओ बीएस & gt; & LT; ओब & gt; & LT; कोड & gt; डीईएफ़ & lt; / कोड & gt; & Lt; / ओब & gt; & Lt; / ओ बीएस & gt; & Lt; / चालान & gt; & Lt; / चालान & gt;
ठीक है, मेरा सवाल यह है, मेरे पास यह एक्सएमएल है, जो मेरे पास बाहरी प्रणाली से आएगा, इसमें बड़ी संख्या में 'इनवॉइस' नोड हो सकते हैं और एक 'इनवॉइस' नोड में बड़ा हो सकता है 'कोड' नोड्स की संख्या मैं 'इनवॉइस' नोड्स के 'कोड' नोड्स को पढ़ना चाहता हूं और उन्हें इस तरह से एक सरणी में सहेजना चाहता हूं: चालान [1] .कोड [1] = एबीसी चालान [1] .कोड [2] = 123 चालान [2] .कोड [1] = डीईएफ JavaA में XPathExpression का उपयोग करके यह कैसे करें नीचे मेरी एक्सपेथ अभिव्यक्ति है जो काम नहीं कर रही है।
expr = xpath.compile ("// चालान / चालान / आक्षेप / ओब / कोड / पाठ ()");
कृपया 'इनवॉइस' नोड्स की संख्या और 'कोड' नोड्स में उच्चतर उत्तर दें
आपका एक्सएमएल अच्छी तरह से संरचित नहीं है शुरुआत में एक & lt; चालान & gt;
गुम है उचित संरचना निम्नलिखित है:
& lt; चालान & gt; & LT; चालान & gt; & LT; ओ बीएस & gt; & LT; ओब & gt; & LT; कोड & gt; एबीसी & lt; / कोड & gt; & Lt; / ओब & gt; & LT; ओब & gt; & LT; कोड & gt; 123 & lt; / कोड & gt; & Lt; / ओब & gt; & Lt; / ओ बीएस & gt; & Lt; / चालान & gt; & LT; चालान & gt; & LT; ओ बीएस & gt; & LT; ओब & gt; & LT; कोड & gt; डीईएफ़ & lt; / कोड & gt; & Lt; / ओब & gt; & Lt; / ओ बीएस & gt; & Lt; / चालान & gt; & Lt; / चालान & gt;
आप परिभाषित xpath अभिव्यक्ति सही है मैं निम्न आदेशों के साथ गति के लिए अजगर (और एलएक्स्यूल लाइब्रेरी) के साथ परीक्षण किया है:
से आयात करें एट्री पेड़ = etree.parse ('yourfile.xml') रूट = tree.getroot () रूट .xpath ('// चालान / इनवॉइस / ऑब्स / ओब / कोड / टेक्स्ट ()')
और मुझे आपके द्वारा प्राप्त सरणी मिली:
['एबीसी', '123', 'डीईएफ']
No comments:
Post a Comment