我需要使用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种方法)
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类似的代码,但是没有用。
var objXML = new ActiveXObject("MSXML2.DOMDocument");
最大的问题是,在您修复它之前,任何JScript巫术配方都会使您的XML无效且无法解析。摆脱你的<scraping Test>
标签中的非法空间。使它成为<scrapingTest>
或<root>
。
您还需要在XPath中选择text()
节点,然后修改结果节点的.data
属性。
除此之外,修复代码中的所有cAmElCaSe分歧并控制日期格式。使用这个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>
这段代码可供我解析和修改它:
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);