使用XMLDOM修改XML文件
modify XML file using XMLDOM
我无法使用XMLSerializer修改我的xml…我的代码是
var xml = request.responseText;
var DOMParser = require( 'xmldom' ).DOMParser;
var parser = new DOMParser();
var document = parser.parseFromString( xml, 'text/xml' );
document.getElementsByTagName( "a:Value" ).nodeValue = 12345;
var XMLSerializer = require( 'xmldom' ).XMLSerializer;
var serializer = new XMLSerializer();
var writetofile = serializer.serializeToString( document );
console.log( "writetofile" + writetofile );
我得到的XML与旧值相同,而不是12345。
请让我知道如何解决这个问题,尝试了所有的选项,但仍然不起作用。
尝试将第5行改为
document.getElementsByTagName("a:Value")[0].childNodes[0].data = '124241';
编辑
这是我在"runkit.com"上写的代码,用来演示我是如何解决评论中提到的问题的。
// some make-up xml
var xml = `
<root>
<a:table xmlns:a="http://www.w3schools.com/furniture">
<a:name>African Coffee Table</a:name>
<a:width>80</a:width>
<a:length>120</a:length>
<a:Value>old value</a:Value>
</a:table>
</root>`;
var DOMParser = require( 'xmldom' ).DOMParser;
var parser = new DOMParser();
var document = parser.parseFromString( xml, 'text/xml' );
// this won't work, but no error
document.getElementsByTagName( "a:Value" ).nodeValue = 12345;
// check: you will get "undefined" on the console
console.log( document.getElementsByTagName("a:Value").nodeValue);
// check: you will get "old value" on the console
console.log( document.getElementsByTagName("a:Value")[0].childNodes[0].data );
// here is another try
document.getElementsByTagName("a:Value")[0].childNodes[0].data = '12345';
// next, you will get "12345" on the console as expected
console.log( document.getElementsByTagName("a:Value")[0].childNodes[0].data );
var XMLSerializer = require( 'xmldom' ).XMLSerializer;
var serializer = new XMLSerializer();
var xmlstring = serializer.serializeToString( document );
console.log( "xmlstring: 'n" + xmlstring );
console.log()的相关输出:
undefined
old value
12345
xmlstring:
<root>
<a:table xmlns:a="http://www.w3schools.com/furniture">
<a:name>African Coffee Table</a:name>
<a:width>80</a:width>
<a:length>120</a:length>
<a:Value>12345</a:Value>
</a:table>
</root>
感谢您的再次回复…
我已经找到了解决方案,粘贴在这里希望它能帮助别人使用的textContent属性
下行更改document.getElementsByTagName( "a:Value" ).nodeValue = 12345;
document.getElementsByTagName( "a:Value" )[0].textcontent = 12345;
成功了! !现在,我得到的是带有更改值的整个XML。干杯! !
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 显示IIS上javascript文件(SOAP请求)的XML响应
- 如何使用javascript或jquery mobile从url读取和显示XML文件
- 如何使用JQUERY解析大型XML文件并将其可视化为HTML格式
- Javascript/JQuery.本地缓存xml文件
- 需要帮助处理XML HTTP文件上载请求
- xml文件在js项目目录结构中的位置
- 使用jquery动态解析XML文件
- 指定单击链接时要加载的xml文件
- 使用javascript读取本地XML文件并在html页面中显示
- 将xml文件导入pdf(Acrobat)
- 使用AJAX传递的数据编辑XML文件-正在删除XML数据
- 在HTML文档中使用XML文件中的数据
- 可以't从xml文件中提取数据
- 通过JS/AAJAX在XML文件中搜索1个数据
- 搜索XML文件并使用javascript显示结果
- Windows 8市场应用程序JS,访问远程XML文件
- 如何获取XML值,然后使用javascript将它们输出到htm文件中
- 加载svg文件(xml)并使用javascript提取特定信息
- (初学者javascript)获取多个文本文件XML请求