मैं XMLBuilder पैकेज का उपयोग करके Node.js में XML फाइलें बना रहा हूं। एक चीज को छोड़कर सब कुछ ठीक चल रहा है। मैं root तत्व में विशेषताएँ जोड़ने का प्रयास कर रहा हूँ लेकिन किसी कारण से, यह child तत्व में जुड़ जाता है।

मैंने अपना root तत्व इस तरह घोषित किया है:

//Create the header for XML
var builder     =   require('xmlbuilder');

var root        =   builder.create('test:XMLDocument')
                            root.att('schemaVersion', "2.0")
                            root.att('creationDate', '2020-10-09T09:53:00.000+02:00')
                            root.att('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance")
root            =   root.ele('MyBody')
root            =   root.ele('MyEvents')

घोषणा के बाद जब मैं अपने मूल तत्वों में कुछ और विशेषताएँ जोड़ने का प्रयास करता हूँ:

root.att('new1','additionalAttributes1')
root.att('new2','additionalAttributes2')

यह MyEvents से जुड़ रहा है और कुछ इस तरह दिखता है:

<?xml version="1.0"?>
<test:XMLDocument schemaVersion="2.0" creationDate="2020-10-09T09:53:00.000+02:00">
    <MyBody>
        <MyEvents new1="additionalAttributes1" new2="additionalAttributes2">
        </MyEvents>
    </MyBody>
</test:XMLDocument>

लेकिन मैं जेनरेट की गई एक्सएमएल फाइल को इस तरह कुछ दिखने की उम्मीद कर रहा हूं:

<?xml version="1.0"?>
<test:XMLDocument schemaVersion="2.0" creationDate="2020-10-09T09:53:00.000+02:00" new1="additionalAttributes1" new2="additionalAttributes2">
    <MyBody>
        <MyEvents>
        </MyEvents>
    </MyBody>
</test:XMLDocument>

मुझे पता है कि अगर मैं अपने एक्सएमएल तत्व को इस तरह घोषित करता हूं तो मैं अपेक्षित परिणाम प्राप्त करने में सक्षम हूं लेकिन जैसा कि मैं इसे किसी अन्य फ़ंक्शन में पास कर रहा हूं, मैं इसे इस तरह घोषित करने में असमर्थ हूं:

//Create the header for XML
var builder             =   require('xmlbuilder');

var root        =   builder.create('test:XMLDocument')
                            root.att('schemaVersion', "2.0")
                            root.att('creationDate', '2020-10-09T09:53:00.000+02:00')
                            root.att('xmlns:xsi', "http://www.w3.org/2001/XMLSchema-instance")
                            
root.att('new1','additionalAttributes1')
root.att('new2','additionalAttributes2')

root            =   root.ele('MyBody')
root            =   root.ele('MyEvents')

मैंने यह देखने के लिए .up() जोड़ने का प्रयास किया कि क्या यह माता-पिता में जोड़ा जाता है लेकिन कोई भाग्य नहीं है। क्या कोई मेरी मदद कर सकता है जब मेरे कई बच्चे हैं और आवश्यक परिणाम प्राप्त करने के लिए मैं माता-पिता के गुणों को कैसे जोड़ सकता हूं?

0
BATMAN_2008 5 अक्टूबर 2020, 13:15

1 उत्तर

सबसे बढ़िया उत्तर

आपको बस दो बार ऊपर जाना है

var builder = require('xmlbuilder')
var root = builder.create('test:XMLDocument')
root.att('schemaVersion', '2.0')
root.att('creationDate', '2020-10-09T09:53:00.000+02:00')
root.att('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance')
root = root.ele('MyBody')
root = root.ele('MyEvents')

root = root.up().up()
root.att('new1','additionalAttributes1')
root.att('new2','additionalAttributes2')

console.log(root.end({pretty: true}));

उत्पादन

<?xml version="1.0"?>
<test:XMLDocument schemaVersion="2.0" creationDate="2020-10-09T09:53:00.000+02:00" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" new1="additionalAttributes1" new2="additionalAttributes2">
  <MyBody>
    <MyEvents/>
  </MyBody>
</test:XMLDocument>
1
Tuan Anh Tran 6 अक्टूबर 2020, 12:15