मेरे पास एक्सएमएल फाइलों का संग्रह है, और उनमें से कुछ बहुत बड़े हैं (~ 50 मिलियन तत्व नोड्स तक)। मैं उन फ़ाइलों को मान्य करने के लिए xmllint
का उपयोग कर रहा हूं, जो स्ट्रीमिंग एपीआई के लिए बहुत बड़े लोगों के लिए भी बहुत अच्छी तरह से काम करता है।विशाल एक्सएमएल फाइलों में कमांड लाइन XPath क्वेरी कैसे करें?
xmllint --loaddtd --stream --valid /path/to/huge.xml
मैं हाल ही में पता चला कि xmllint
भी कमांड लाइन XPath प्रश्नों, जो बहुत आसान है करने में सक्षम है।
xmllint --loaddtd --xpath '/root/a/b/c/text()' /path/to/small.xml
हालांकि, ये XPath प्रश्न विशाल XML फ़ाइलों के लिए काम नहीं करते हैं। मुझे कुछ समय बाद "हत्या" संदेश मिलता है। मैंने स्ट्रीमिंग एपीआई को सक्षम करने की कोशिश की, लेकिन इससे कोई आउटपुट नहीं हुआ।
xmllint --loaddtd --stream --xpath '/root/a/b/c/text()' /path/to/huge.xml
वहाँ जब xmllint
का उपयोग कर XPath प्रश्नों कर स्ट्रीमिंग मोड सक्षम करने के लिए एक रास्ता है? क्या विशाल एक्सएमएल फाइलों के लिए कमांड लाइन XPath क्वेरी करने के लिए अन्य/बेहतर तरीके हैं?
कोशिश 'इंटरैक्टिव के लिए --shell' विकल्प (सिर्फ xml फ़ाइल पथ के साथ) – flafoux
मैं एक बड़ी फ़ाइल के लिए इंटरैक्टिव खोल खोलने की कोशिश की, लेकिन यह (" मार डाला "बस के रूप में दुर्घटना होगा, इससे पहले कि मैं कोई आदेश दर्ज कर सकूं, '--stream' का उपयोग न करने का मामला)। – MRA
http://superuser.com/questions/543881/efficiently-extracting-a-few-data-from-a-large-xml-file –