javascript - नोड+xmldom: मैं जावास्क्रिप्ट में एक एकल XML फ़ील्ड का मान कैसे बदलूं?



node.js xml-parsing (1)

नोड v.0.10.29, एक्सप्रेस v4.12.0 और xmldom v0.1.19 का उपयोग करते हुए, मैं निम्नलिखित करने की कोशिश कर रहा हूं:

कदम

  1. स्ट्रिंग में एक्सएमएल फाइल को पढ़ें
  2. Xmldom का उपयोग करके स्ट्रिंग को एक्सएमएल ऑब्जेक्ट में कनवर्ट करें
  3. <name>default</name> फ़ील्ड को <name>test</name>
  4. एक्सएमएल ऑब्जेक्ट को वापस स्ट्रिंग में कनवर्ट करें

मुसीबत

समस्या यह है कि जब मैं <name> फ़ील्ड सेट करता हूं, तब वस्तु में सही ढंग से सेट होता है, लेकिन जब मैं इसे स्ट्रिंग में बदलता हूं, तो <name> फ़ील्ड पुरानी मान (गलत) होने के कारण वापस आ जाती है।

कोड

इस कोड को इसके लिए क्या दिखता है:

var fs = require('fs');
var DOMParser = require('xmldom').DOMParser;
var XMLSerializer = require('xmldom').XMLSerializer;
var filename = "myFile.xml";

fs.readFile(filename, "utf-8", function (err,data) 
{
    //CREATE/PARSE XML OBJECT FROM STRING
    var customerConfig = new DOMParser().parseFromString(data);

    //SET VALUE TO "TEST" (<name>default</name> TO <name>test</name>)
    customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";

    //THIS OUTPUTS "test" WHICH IS CORRECT - 
    console.log(customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue);

    //SERIALIZE TO STRING
    var xmlString = new XMLSerializer().serializeToString(customerConfig);

    //THIS OUTPUTS THE FULL XML FILE, 
    //BUT STILL SHOWS <name>default</name> AND NOT <name>test</name>
    console.log(xmlString);
});

समस्या यह है कि <name> क्षेत्र स्ट्रिंग में test करने के लिए सेटिंग नहीं है ... मैं सोच रहा हूं कि धारावाहिक भाग के साथ कोई समस्या है? कोई भी मैं गलत क्या कर रहा हूँ?

धन्यवाद!!


अच्छी तरह से मैं समस्या का पता लगाया!

मैं nodeValue सेट कर रहा था लेकिन मुझे वास्तव में data सेट करने की आवश्यकता है तो मैं बदल गया

customerConfig.getElementsByTagName("name")[0].childNodes[0].nodeValue = "test";

सेवा मेरे

customerConfig.getElementsByTagName("name")[0].childNodes[0].data= "test";

तो यह काम किया!






domparser