Node + xmldom - 用值替换现有的空白xml字段

时间:2018-03-27 10:02:11

标签: javascript node.js xml-parsing xml-serialization domparser

我使用XMLDOM节点模块替换xml字段值。如果我正在替换已经具有一些新值的值的xml字段,则下面的代码运行良好。但是如果xml字段为空并且我将其替换/设置为某个值,则代码会出错。

该代码适用于:

<accountId>12345</accountId>
//Replace to 
<accountId>99999</accountId>

代码在以下情况下失败:

<accountId></accountId>
//Replace to
<accountId>99999</accountId>

错误消息:无法读取未定义

的属性“数据”

使用xmldom模型的Javascript代码:

    await (function replaceRequestData(callback)    {
//requestPath is the path from where xml structure is read
        fs.readFile(requestPath, 'utf8', function(err,data)    {
            var tempXML = new dom().parseFromString(data);
            tempXML.getElementsByTagName("accountId")[0].childNodes[0].data = 99999;
            console.log(tempXML.getElementsByTagName("accountId")[0].childNodes[0].data);
            var xmlString = new XMLSerializer().serializeToString(tempXML);
            callback(null, xmlString);
            fs.writeFile(requestPath, xmlString, 'utf8');
            //console.log(requestPath);
        });

    });

0 个答案:

没有答案