如何在Jscript中更改xml节点值?

问题描述 投票:0回答:1

我需要使用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");
xml jscript xmldom
1个回答
0
投票

最大的问题是,在您修复它之前,任何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);
© www.soinside.com 2019 - 2024. All rights reserved.