मेरे पास एक एक्सएमएल फाइल है जो नीचे से बना है:
<कोड> & lt; भुगतान / & gt; & LT; भुगतान & gt; & LT; payment_type & gt; & Lt; / payment_type & gt; & LT; dataforpay & gt; & Lt; / dataforpay & gt; & LT; आवंटन / & gt; & LT; आवंटन & gt; & LT; आईडी & gt; & Lt; / आईडी & gt; & LT; notfind & gt; & Lt; / notfind & gt; & LT; राशि & gt; & Lt; / राशि & gt; & Lt; / आवंटन & gt; & Lt; / भुगतान & gt;
यह बहुत ही उन्नत स्वरूप के रूप में, मैं vbscript का उपयोग करके इस प्रारूप को नीचे अपडेट करना चाहता हूं ..... कृपया सुझाव दें?
<कोड> & lt; भुगतान & gt; & LT; भुगतान & gt; & LT; payment_type & gt; & Lt; / payment_type & gt; & LT; dataforpay & gt; & Lt; / dataforpay & gt; & LT; आवंटन & gt; & LT; आवंटन & gt; & LT; आईडी & gt; & Lt; / आईडी & gt; & LT; notfind & gt; & Lt; / notfind & gt; & LT; राशि & gt; & Lt; / राशि & gt; & Lt; / आवंटन & gt; & Lt; / आवंटन & gt; & Lt; / भुगतान & gt; & Lt; / भुगतान & gt;
नीचे कोड का प्रयास करें यह बहुवचन में नाम के साथ स्वयं समापन टैग पाता है, और एकल या एक ही नाम के एक या एक से अधिक जोड़ी खुले-बंद टैग के साथ, और यह खुले-बंद जोड़े के साथ प्रत्येक स्वयं-समापन टैग की जगह लेता है, और इसमें स्थानांतरित करता है सभी निम्न टैग जो मिलान किए गए थे।
sCont = ReadTextFile ("सी: \ टेस्ट \ src.xml", -2) CreateObject के साथ ("VBScript .गैजेल = फॉल्स। मल्टीलिइन = ट्रू। अनूठे केस + ट्रू डू 'पैटर्न जिसका नाम बहुवचन में नाम के साथ स्वयं समापन टैग से मेल खाता है, उसके बाद एक या एक से अधिक जोड़ी खुले बंद टैग के साथ एकवचन में एक ही नाम के साथ। पैटर्न ["आर" +) (\ S * & lt; \ 2 (?: \ S + [^ & gt;] *) * & gt; [\ s \ S] *? & Lt; / 2 & gt;) "यदि नहीं। टेस्ट (sCont) तो बाहर निकलें 'खुले करीब जोड़ी के साथ मिलान स्वतः बंद होने वाले टैग को बदलने, और सबसे पहले मिलने वाला चाल में यह sCont = .Replace टैग निम्नलिखित (sCont, "$ 1 & LT; $ 2s $ 3 & gt; $ 4 $ 5 $ 4 $ 1 & lt; / $ 2s & gt;") 'पा से मिलान करने के लिए पैटर्न एक या अधिक, युक्त बहुवचन में नाम के साथ खुले करीब टैग की ir और विलक्षण .Pattern = "((में एक ही नाम के साथ खुले करीब टैग के एक या अधिक जोड़ी के द्वारा पीछा किया: ^ \ s *) के & lt; (\ w +) s (: \ s + [^ & gt;] *) * & gt; \ s * [\ r \ n] \ s * & LT; \ 2 (: \ s + [^ & gt;] *) * & gt; [\ s \ एस] * & lt; / \ 2 & gt; \ s * [\ r \ n]) (^ \ s * & lt; / \ 2s & gt; \ s * [\ r \ n]) ( \ S * & lt; \ 2 (?: \ S + [^ & gt;] *) * & gt; [\ s \ S] *? & Lt; / 2 & gt; \ * [\ r \ n] +) "करते समय टेस्ट (एसकंट) 'एकमात्र में समान नाम से sCont = में मिलान किए गए टैग से मेल खाता है। बदलें (sCont, "$ 1 $ 4 $ 3") लूप लूप एंड लिस्ट एंड लिस्ट टेक्स्टफाइल sCont, "C: \ Test \ dst.xml", -2 समारोह ReadTextFile (sPath, iFormat) CreateObject ( "Scripting.FileSystemObject") के साथ। OpenTextFile (sPath, 1, झूठी, iFormat) ReadTextFile = "" नहीं .AtEndOfStream फिर ReadTextFile = .ReadAll .Close समाप्ति समारोह के साथ समाप्त तो उप WriteTextFile (sCont , sPath, iFormat) CreateObject ( "Scripting.FileSystemObject")। OpenTextFile (sPath, 2, यह सच है, iFormat) .Write के साथ ( sCont) End Sub साथ .Close समाप्ति
एक्सएचटीएमएल RegExp साथ पार्स करने।
No comments:
Post a Comment