क्या कोई जानता है कि मुझे पायथन में एक एक्सएमएल फ़ाइल का डीओएम इंस्टेंस (पेड़) कैसे मिलेगा। मैं दो एक्सएमएल दस्तावेज़ों की तुलना एक दूसरे से करने की कोशिश कर रहा हूं जिसमें अलग-अलग क्रम में तत्व और गुण हो सकते हैं। यह मैं कैसे करूंगा?एक्सएमएल दस्तावेज़ का डीओएम पेड़ प्राप्त करना
उत्तर
व्यक्तिगत रूप से, जब भी संभव हो, मैं elementtree (अधिमानतः सी कार्यान्वयन जो पायथन की मानक लाइब्रेरी के साथ आता है, या lxml कार्यान्वयन के साथ आता है, लेकिन यह आवश्यक है कि केवल उच्च गति की बात हो)। यह मानक-अनुरूप डीओएम नहीं है, लेकिन एक ही जानकारी को एक और पाइथोनिक और आसान तरीके से रखती है। आप xml.etree.ElementTree.parse
पर कॉल करके प्रारंभ कर सकते हैं, जो एक्सएमएल स्रोत लेता है और एक तत्व-पेड़ देता है; दोनों स्रोतों पर ऐसा करें, प्रत्येक मूल पेड़ को प्राप्त करने के लिए प्रत्येक तत्व पेड़ पर getroot
का उपयोग करें, फिर मूल रूप से रूट तत्वों से शुरू होने वाले तत्वों की तुलना करें।
एक तत्व के बच्चे मानक डीओएम में तत्व पेड़ में एक अनुक्रम बनाते हैं, जिसका अर्थ है कि उनके आदेश को महत्वपूर्ण माना जाता है; लेकिन एक लेक्सर तुलना के लिए पाइथन को उनमें से सेट करना आसान है (या किसी प्रकार के थोड़ा अधिक प्रयास "बहु-सेट" के साथ, यदि आपके उपयोग के मामले में पुनरावृत्ति महत्वपूर्ण है, हालांकि ऑर्डर नहीं है)। किसी दिए गए तत्व के लिए विशेषताओं के लिए यह भी आसान है, जहां विशिष्टता आश्वासन दिया जाता है और आदेश अर्थात् प्रासंगिक नहीं है।
क्या कोई विशिष्ट कारण है कि आपको किसी तत्व के पेड़ की तरह वैकल्पिक कंटेनर के बजाय मानक डोम की आवश्यकता है, या क्या आप सामान्य ज्ञान में डीओएम शब्द का उपयोग कर रहे हैं ताकि तत्व का पेड़ ठीक रहे?
अतीत में मैंने PyRXP का उपयोग करके भी अच्छे परिणाम प्राप्त किए हैं, जो ElementTree की तुलना में एक कठिन और सरल प्रतिनिधित्व का उपयोग करता है। हालांकि, यह साल और साल पहले था; मेरे पास कोई हालिया अनुभव नहीं है कि आज पीईआरएक्सपी कैसे एलएक्सएमएल या सीमेंटमेंट्री के साथ तुलना करता है।
XML दस्तावेज़ उदाहरणों, एक अनुभवहीन पार्स डोम पेड़ों की तुलना काम नहीं करेगा की तुलना के लिए। जब बच्चा तत्वों महत्वपूर्ण के आदेश है
- : आप शायद अपनी खुद की NodeComperator कि रिकर्सिवली जैसे अपने विशिष्ट मानदंडों के आधार पर एक नोड और कुछ अन्य नोड के साथ अपने बच्चे की नोड्स और उसके बच्चे नोड्स तुलना लागू करने के लिए की आवश्यकता होगी ?
- टेक्स्ट-सामग्री में सफेद जगह कब महत्वपूर्ण है?
- क्या कुछ तत्वों के लिए डिफ़ॉल्ट मान हैं और क्या वे आपके पार्सर द्वारा लागू होते हैं?
- चाहिए एंटिटी संदर्भ तुलना के लिए विस्तारित किया जा
Minidom फ़ाइलों को पार्स करने के लिए एक अच्छा प्रारंभिक बिंदु है और उपयोग करने के लिए आसान है। आपके विशिष्ट एप्लिकेशन के लिए तुलना फ़ंक्शन का वास्तविक कार्यान्वयन हालांकि आपके द्वारा किया जाना आवश्यक है।
- 1. एचटीएमएल दस्तावेज़ पेड़ (डीओएम पेड़) को देखने के लिए उपकरण
- 2. एक्सएमएल दस्तावेज़
- 3. एक्सएमएल दस्तावेज़ में सीरियलाइज करें - एक्सएमएल दस्तावेज़
- 4. एक्सएमएल दस्तावेज़
- 5. एक्सएमएल दस्तावेज़
- 6. सी #: एक्सएमएल दस्तावेज़
- 7. लिंक से एक्सएमएल बनाम डीओएम
- 8. डीसी का मूल्य प्राप्त करना: एसक्यूएल एक्सएमएल
- 9. कॉन्फ़िगरेशन एक्सएमएल पेड़ Magento का निरीक्षण
- 10. एक्सएमएल फाइलों में विशेष पात्र - डीओएम एपीआई
- 11. दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) कैसे मास्टर करें?
- 12. डीओएम
- 13. एक्सएमएल आईडीआरईएफ एक और एक्सएमएल दस्तावेज़?
- 14. जावा में मेरा दस्तावेज़ पथ प्राप्त करना
- 15. वर्ड दस्तावेज़ से शीर्षलेख प्राप्त करना
- 16. डीओएम का उपयोग करते हुए जावा एक्सएमएल पार्सिंग नोडवाल्यू
- 17. डब्ल्यूपीएफ दस्तावेज़: टेबल सेल सीमाएं प्राप्त करना
- 18. वेबव्यू में दस्तावेज़ स्थिति प्राप्त करना?
- 19. एक्सएमएल स्कीमा और दस्तावेज़ रूट
- 20. जावा डीओएम
- 21. सभी डीओएम कार्यक्रमों की एक सरणी प्राप्त करना संभव है
- 22. क्यूटी डीओएम
- 23. एक्सएमएल दस्तावेज़ में त्रुटि (2,2)
- 24. डीओएम तत्वों से जुड़े घटनाक्रम कैसे प्राप्त करें?
- 25. asmack - कस्टम एक्सएमएल संदेश प्राप्त करना ||
- 26. डीओएम ऑब्जेक्ट के jQuery x y दस्तावेज़ निर्देशांक
- 27. जेवाडोक या सी # एक्सएमएल दस्तावेज़
- 28. एफ # में कन्स्ट्रक्टर एक्सएमएल दस्तावेज़?
- 29. क्लोजर में एक्सएमएल में किसी तत्व का मूल्य प्राप्त करना?
- 30. डीओएम
मैंने मिनीडॉम देखा है और दस्तावेज़ीकरण में कोई जानकारी नहीं है कि एक पार्स फ़ाइल से डीओएम पेड़ कैसे प्राप्त करें। मैं दो पेड़ों की तुलना करना चाहता हूं ताकि आदेश कोई फर्क नहीं पड़ता। क्या आपको कोई विचार है कि यह कैसे करें? – Dave
पायथन 2.6 में मिनीडॉम डॉक्यूमेंटेशन एक फ़ाइल से एक डोम प्राप्त करने का उदाहरण देता है (क्या आप किसी और चीज के बाद हैं) xml.dom से।minidom आयात पार्स, parseString dom1 = parse ('c: \\ temp \\ mydata.xml') # नाम से एक एक्सएमएल फ़ाइल पार्स – Mark