gpt4 book ai didi

javascript - NodeJS XMLDOM - 设置序列化时丢失的 DOM 值

转载 作者:行者123 更新时间:2023-12-03 12:12:43 24 4
gpt4 key购买 nike

我正在使用nodejs xmldom模块来调用SOAP服务。在调用服务之前,我必须设置电话号码

代码如下

    var fs = require('fs');
var xmldoc = fs.readFileSync('req.xml', 'utf8');

var DOMParser = require('xmldom').DOMParser;
var doc = new DOMParser().parseFromString(
xmldoc
,'text/xml');

//change phone number from xxxxxx to 83834324838 (dummy)
doc.getElementsByTagName('msisdn').item(0).firstChild.nodeValue = '83834324838';

var phone = doc.getElementsByTagName('msisdn').item(0).firstChild.nodeValue;

// logs 83834324838
console.log(phone);

// serialize DOM back to xml
var XMLSerializer = require('xmldom').XMLSerializer;
var serializedXML = new XMLSerializer().serializeToString(doc);

var inspect = require('util').inspect;

//!!serialized XML doesnt have the 83834324838
console.log(inspect(serializedXML, {
colors: true,
depth: Infinity
}));


//call to SOAP service

变量serializedXML没有我设置的电话号码(83834324838)。我检查了 DOM 文档,发现我设置 msisdn/phone_number 的方式是正确的(console.log(phone) 证明了这一点)。但是一旦将 DOM 序列回 XML 字符串,我就会丢失新的数字。

到这里就束手无策了。有人可以尝试一下吗?

最佳答案

这是 XMLDOM 模块中的一个错误:

https://github.com/jindw/xmldom/issues/33

我想还有其他 Node.js 模块可以完成这项工作。怎么样libxmljs ? (免责声明:通过快速搜索找到的。我从未使用过它。)

关于javascript - NodeJS XMLDOM - 设置序列化时丢失的 DOM 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24885069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com