XML के लिए Grep टूल [बंद]


22

मैं एक्सएमएल पर grep जैसे संचालन करने के लिए एक अच्छे टूल की तलाश कर रहा हूं - उदाहरण के लिए, केवल कुछ विशेषताओं को निकालें।

Grep खुद इसे संभाल नहीं सकते हैं - कोई भी डीएफए-समतुल्य उपकरण केवल गैर-पुनरावर्ती मैचों को संभाल सकता है, और मेरा पुनरावर्ती हो सकता है।

मैंने xgrep की कोशिश की है , लेकिन यह काफी अस्थिर है, और मुझे एक स्थिर और विश्वसनीय उपकरण चाहिए।

कोई सिफारिशें?

संपादित करें: मैं खुले स्रोत उपकरण पसंद करता हूं जो लिनक्स के तहत अच्छी तरह से काम करते हैं।

जवाबों:


21

XMLStarlet (विकिपीडिया) एक कमांड लाइन टूल है जो करीब आता है grep। यह ओपन सोर्स सॉफ्टवेयर (MIT लाइसेंस) है और लिनक्स और विंडोज पर अच्छा काम करता है।

XMLStarlet वेबसाइट इसका वर्णन इस प्रकार है।

XMLStarlet कमांड लाइन यूटिलिटीज (टूल्स) का एक सेट है, जिसका उपयोग XML दस्तावेज़ों और फाइलों को बदलने, क्वेरी करने, सत्यापन करने और संपादित करने के लिए किया जा सकता है, इसी तरह से शेल कमांड के सरल सेट का उपयोग करते हुए इसे यूनिक्स ग्रीप, सेड के उपयोग से सादे टेक्स्ट फ़ाइलों के लिए किया जाता है। awk, diff, patch, join, etc. कमांड्स।

डेबियन / उबंटू पैकेज का नाम दिया गया है xmlstarletलेकिन खबरदार: मैनपेज जो कहता है उसके विपरीत, बाइनरी का नाम xmlstarletडेबियन / उबंटू में रखा गया है और नहीं xml

SourceForge पर विंडोज बायनेरिज़ भी हैं।

एक छोटे से परिचय के लिए, XMLStarlet के साथ आईबीएम की शुरुआत को देखें


पहले लिंक से ट्रेलिंग स्लैश को हटा दें।
Bkkbrad

मैं इसे काम पर नहीं ला सकता ... यह '/' (पूरे दस्तावेज़) को छोड़कर किसी भी xpath पर मेल नहीं खाता, जो बहुत बेकार है :(
हेंडी इरावन

@ हेंडी इरावन - क्या आपको यकीन है कि आप xpath का उपयोग करने की कोशिश नहीं कर रहे हैं? (जैसे आपके XML में एक डिफ़ॉल्ट नाम स्थान है जिसका आप हिसाब नहीं दे रहे हैं?)
Daniel Haley

मैंने इसे क्लोन करने की कोशिश की, लेकिन ऐसा लगता है कि भंडार टूट गया है।
होला

5

XPath विभिन्न भाषाओं में वाक्य रचना एक्सएमएल में चीजों को खोजने के लिए सबसे अच्छा है। वास्तव में xgrep के निर्माताओं द्वारा सुझाए गए उपकरणों में से एक मूल रूप से एक पर्ल XML पार्सर है जो XPath इनपुट को स्वीकार करता है।


5

लिनक्स के तहत काम करने वाला एक उपकरण xml_grep है । यह XML को पूरी तरह से समझता है और यह लाइन-बाय-लाइन टूल नहीं है।

xml_grep को XML :: Twig पैकेज में एक स्टैंड-अलोन टूल के रूप में शामिल किया गया है । ग्रेपिंग कार्यक्षमता काफी शक्तिशाली है क्योंकि यह XPath विनिर्देशों का समर्थन करता है।

सैंपल कमांड-लाइन ( ट्राइकोलॉजी डेटा डंप से फरवरी के मध्य के बाद एडिटिंग पोस्ट ):

xml_grep -p --cond="row[@LastEditDate>'2010-02-14']"  posts.xml  > lateEditedPosts.xml

स्थापना आसान है। भी

  • sudo cpan -i "XML::Twig", जैसा कि नीचे वर्णित xml_grep रसोई की किताब में वर्णित है।

या


अधिक जानकारी:

Xml_grep के लिए मैंने जो सबसे अच्छा परिचय पाया है, वह दो पृष्ठों के बारे में xml_grep रसोई की किताब है । अन्य:


मैंने एक टूटी हुई कड़ी को ठीक कर लिया है, लेकिन ट्रायोलॉजी डेटा डंप लिंक भी टूट गया है। मैं देखता हूं मैं क्या कर सकता हूं।
पीटर मोर्टेंसन


0

मैं सलाह दूंगा कि XML पर grep जैसे टूल का उपयोग न करें, लेकिन XML को पार्स करने के लिए एक लाइब्रेरी का उपयोग करें।
वास्तव में आपको इसके लिए क्या चाहिए? कोई प्रोग्रामिंग भाषा? मुझे लगता है कि यदि आप इसके लिए एक कार्यक्रम लिखने के लिए तैयार हैं, तो .NET बिल्ट-इन XML पार्सर आसानी से नौकरी के लायक हो जाएगा।

अद्यतन : लिनक्स के लिए, एक प्रसिद्ध XML पार्सर लाइब्रेरी libxml2 है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.