python - How do i get newest date through xpath? -
मेरे पास एक्सएमएल है:
& lt; सामग्री & gt; & Lt; लेख शीर्षक = "मैं कम्यूट, इसलिए मैं" id = "a1" & gt; & LT; लेखकों & gt; & Lt; लेखक & gt; फिलबर्ट वॉन कुकी & lt; / author & gt; & Lt; लेखक & gt; ऐलिस ब्रॉक्मन & lt; / लेखक & gt; & Lt; लेखक & gt; पेड्रो स्मिथ & lt; / लेखक & gt; & Lt; / लेखकों & gt; & LT; पत्रिका & gt; & Lt; नाम & gt; कम्प्यूटेशनल मेटाफिज़िक्स के जर्नल & lt; / name & gt; & LT; मात्रा & gt; 3 & lt; / मात्रा & gt; & LT; मुद्दा & gt; 7 & lt; / मुद्दा & gt; & LT; प्रकाशित & gt; 04/11/2006 और lt; / प्रकाशित & gt; & Lt; पृष्ठ प्रारंभ = "42" अंत = "49" / & gt; & Lt; / पत्रिका & gt; & Lt; / लेख & gt; ... & lt; / सामग्री & gt;
मूल तत्व -> सामग्री
में समान अनुच्छेद नोड हैं I ने अजगर कोड में अपने XML को पार्स किया है और अधिकतम तिथि मान प्राप्त करना चाहते हैं। यह मेरा अजगर कोड है:
प्रयास करें: आयात xml.etree.cElementTree को आयात इत्र के अलावा ईटी के रूप में आयात करें: आयात करें xml.etree.ElementTree ईटी वृक्ष = ईटी। एलेमेंटट्री (फ़ाइल = 'डेटा.xml' ) Root = tree.getroot () root.tag, root.attrib
मैं इसे iterfind () का उपयोग करने का प्रयास कर रहा हूं, लेकिन यह अभी तक काम नहीं करता है।
पेड़ .iterfind में elem के लिए ('(/ * / * / जर्नल / प्रकाशित / मान [नहीं (पाठ () & lt; पूर्ववर्ती-भाव :: मूल्य / पाठ ()) और नहीं (पाठ () & lt; निम्नलिखित-भाई :: मूल्य / पाठ ())])) [1] '): प्रिंट (elem.text)
क्या आप उत्तर के साथ मेरी मदद कर सकते हैं मैं अपना XPATH कैसे सेट करूं Iterfind () या हो सकता है वहाँ ऐसा करने के लिए कोई अन्य तरीके हैं? धन्यवाद।
xml.etree.ElementTree
केवल प्रदान करता है।
एक वैकल्पिक विकल्प सभी तिथियों को एक सूची में पार्स करने और अधिकतम मान प्राप्त करने के लिए होगा:
से datetime आयात datetime dates = [published.text root.iterfind (' .//article/journal/published ')] प्रिंट अधिकतम (तिथियाँ, कुंजी = लैम्ब्डा x: datetime.strptime (x,'% d /% m /% y '))
नोट करें कि इस मामले में अधिकतम मूल्य प्राप्त करने के लिए, आपको datetime
मान की तुलना करनी चाहिए, स्ट्रिंग नहीं (यह वह जगह है जहां key
फ़ंक्शन में मदद करता है)।
इसके अलावा, यदि आप अधिकतम दिनांक जर्नल
रिकॉर्ड से संबंधित प्राप्त करना चाहते हैं, तो आप एक शब्दकोश मानचित्रण "तिथि -> जर्नल" का निर्माण कर सकते हैं और फिर उपयुक्त जर्नल रिकॉर्ड प्राप्त कर सकते हैं:
से datetime आयात datetime आयात ऑपरेटर का प्रयास करें: import xrl.etree.cElementTree को आयात के अलावा ईट के रूप में: आयात xml.etree.ElementTree के रूप में ईटी वृक्ष = ईटी। एलेमेंटट्री (fil ई = 'डेटा.xml') रूट = पेड़.जेट्रोआट () मानचित्रण = {datetime.strptime (जर्नल। संदर्भित करें ('प्रकाशित'), '% d /% m /% Y'): जर्नल के लिए जर्नल में root.iterfind ('.//article/journal')} journal_latest = max (mapping.iteritems (), key = operator.itemgetter (0)) [1] प्रिंट journal_latest.findtext ('name')
Comments
Post a Comment