ADD_XML चर में निम्न शामिल हैं
गूंज "$ ADD_XML" & lt; इकाइयों & gt; & Lt; इकाई ip = "10.106.5.8" इकाई_प्रकार = "रिकग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.21" इकाई_प्रकार = "रिकग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.12" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.13" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; / इकाइयों & gt; & LT; पर्वतमाला / & gt; & Lt; / नेटवर्क & gt;
मैं पहली बार के बाद $ ADD_XML की सामग्री जोड़ना चाहता हूं:
& lt; नेटवर्क & gt;
मेरी एक्सएमएल फाइल में
कृपया सलाह लें कि इसे कैसे लागू करें sed / awk या perl एक लाइनर लाइन
उदाहरण के लिए यह कैसे हो सकता है XML फ़ाइल
& lt; / नेटवर्क & gt; & LT; इकाइयों & gt; & Lt; इकाई ip = "10.106.5.8" इकाई_प्रकार = "रिकग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.21" इकाई_प्रकार = "रिकग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.12" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.13" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; / इकाइयों & gt; & LT; पर्वतमाला / & gt; & Lt; / नेटवर्क & gt;
मैं उस पर दोहराता हूं जो मैंने कहा
डॉन ' टी यह मत करो
नियमित अभिव्यक्ति के साथ XML को पार्स करना गन्दा है और यह टूट जाता है। कई वैध चीजें हैं जो आप एक्सएमएल के साथ कर सकते हैं जो एक नियमित अभिव्यक्ति को छिड़क देगा। (सबसे आसान और सबसे स्पष्ट - सुंदर मुद्रण आपको वैध XML देता है, लेकिन एक नियमित अभिव्यक्ति तोड़ देगा)। इसी तरह जानबूझकर गलत रूप से बना रहे एक्सएमएल बहुत बुरा है, और भी पंगा लेना करने का खतरा है।
यह भी देखें:
और:
तो ऐसा मत करो। एक पार्सर का उपयोग करें
ऐसा कुछ करना चाहिए जो आपको चाहिए (यदि आप स्रोत डेटा का थोड़ा बड़ा नमूना शामिल कर सकते हैं, तो मैं संशोधन कर सकता हूँ):
#! / Usr / bin / पर्ल का उपयोग सख्त; चेतावनियों का उपयोग करें; एक्सएमएल :: टहलना; मेरी $ xml_text = '& lt; एक्सएमएल & gt; & Lt; नेटवर्क & gt; & lt; इकाइयों & gt; यूनिट ip = "1.2.3.4" / & gt; & lt; / इकाइयों & gt; & lt; श्रेणियां & & gt; & lt; / नेटवर्क & gt; & Lt; / एक्सएमएल & gt; '; मेरा $ मूल = एक्सएमएल :: ट्वीग-> नया ('सुंदर_प्रिंट' = & gt; 'इंडेंटेड'); # शायद इसका उपयोग 'parsefile' के बजाय $ मूल- & gt; पार्स ($ xml_text); प्रिंट करें \ "इससे पहले: \ n"; $ Original- & gt; प्रिंट; #read अद्यतन: मेरा $ to_insert = XML :: Twig- & gt; नया - & gt; पार्स (\ * डेटा); # नेटवर्क में एक नया तत्व दर्ज करें: अपने $ इकाई ($ to_insert - & gt; रूट - & gt; बच्चों) को प्राथमिकता दें {$ unit - & gt; कट गया(); $ इकाई - & gt; पेस्ट ($ मूल- & gt; रूट- & gt; प्रथम_चिल्ड ('नेटवर्क') - & gt; प्रथम_चिल्ड ('इकाइयां')); } प्रिंट "\ n बाद: \ n"; $ Original- & gt; प्रिंट; __DATA__ & lt; इकाइयों & gt; & Lt; इकाई ip = "10.106.5.8" इकाई_प्रकार = "रिकग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.21" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.12" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; इकाई ip = "10.106.3.13" इकाई_प्रकार = "रिकॉग्निज डिस्कवरी" / & gt; & Lt; / इकाइयों & gt;
No comments:
Post a Comment