如何更改Jscript中的xml节点值? [英] how to change xml node value in Jscript?

查看:99
本文介绍了如何更改Jscript中的xml节点值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆