如何更改Jscript中的xml节点值? [英] how to change xml node value in Jscript?
问题描述
我需要使用jscript用今天的日期更改节点值
I need to change node value with today's date using jscript
XML文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<scraping Test>
<General>
<FormatVersion>1</FormatVersion>
<FromDate>2/28/2019 00:00:00</FromDate>
<ToDate>2/28/2019</ToDate>
</General>
</scraping Test>
Jscript(尝试使用2种方法)
Jscript (tried using 2 methods)
var dom = new ActiveXObject("Microsoft.XMLDOM");
pathToXML = "Y:\Analysis33.xml" ;
dom.loadxml(pathToXML);
mydate = date();
myVar1 = mydate & " 00:00:00" ;
myVar2 = mydate ;
nNode = xmlDoc.selectsinglenode ("FromDate") ;
nNode.text = myvar1 ;
strResult = xmldoc.save(pathtoxml) ;
我尝试过MSXML2.DOM也类似的代码,但是没有用.
I have tried MSXML2.DOM also similar code, but did not work.
var objXML = new ActiveXObject("MSXML2.DOMDocument");
推荐答案
最大的问题是,任何JScript魔术食谱都无法修复您的XML,并且该XML无法解析.除去<scraping Test>
标记中的非法空间.设为<scrapingTest>
或<root>
.
Biggest problem is your XML is invalid and unparseable by any recipe of JScript sorcery until you fix it. Get rid of the illegal space in your <scraping Test>
tag. Make it <scrapingTest>
or <root>
.
您还需要在XPath中选择text()
节点,然后修改结果节点的.data
属性.
You also need to select the text()
node in your XPath, then modify the resulting node's .data
property.
除此之外,请修复代码中所有的cAmElCaSe分歧,并控制日期格式.使用此XML:
Other than that, fix all the cAmElCaSe disagreement in your code and get your date formatting under control. Using this XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<scrapingTest>
<General>
<FormatVersion>1</FormatVersion>
<FromDate>2/28/2019 00:00:00</FromDate>
<ToDate>2/28/2019</ToDate>
</General>
</scrapingTest>
此代码可帮助我解析和修改它:
This code works for me to parse and modify it:
var dom = WSH.CreateObject("MSXML2.DOMDocument.6.0"),
pathToXML = WSH.Arguments(0);
dom.load(pathToXML);
var nNode = dom.selectSingleNode("//FromDate/text()"),
today = new Date();
nNode.data = [today.getMonth(), today.getDate(), today.getFullYear()].join('/') + ' 00:00:00';
dom.save(pathToXML);
这篇关于如何更改Jscript中的xml节点值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!