以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  向xml写数据的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=34569)


--  作者:102niu
--  发布时间:6/19/2006 1:46:00 AM

--  向xml写数据的问题
用msxml写了如下的脚本文件
AppendNode("d:\\systeminformation.xml","IEVer","Sample");
function AppendNode(FileName, NodeName, Value)
{
  var fso = new ActiveXObject("Scripting.FileSystemObject");
 if (!fso.FileExists(FileName))
 {
  var objXMLDoc = new ActiveXObject("MSXML.DOMDocument");  
  objXMLDoc.loadXML('<?xml version="1.0" encoding="gb2312"?>\n<systeminfo version="9.3.0">\n</systeminfo>');
  objXMLDoc.save(FileName);
 }

 var objXMLDoc = new ActiveXObject("MSXML.DOMDocument");  
 objXMLDoc.load(FileName);
 var objNode = objXMLDoc.selectSingleNode(NodeName);
 if (objNode == null)
 {
  objNode = objXMLDoc.createElement(NodeName);
  objNode.text = Value;
  objXMLDoc.documentElement.appendChild(objNode);
 }
 else 
  objNode.text = Value; 
 objXMLDoc.save(FileName);    
}
现在的问题是运行这个脚本文件,生成的xml文件的内容为
<?xml version="1.0" encoding="gb2312"?>
<systeminfo version="9.3.0">
 <IEVer>Sample</IEVer>
</systeminfo>
但如果再运行这个脚本文件,xml文件的内容就变为
<?xml version="1.0" encoding="gb2312"?>
<systeminfo version="9.3.0">
 <IEVer>Sample</IEVer>
                <IEVer>Sample</IEVer>
</systeminfo>
这是为什么,为什么IEVer节点会出现多次,应该只出现一次的啊,请高手指教一二,谢谢


--  作者:102niu
--  发布时间:6/19/2006 7:20:00 AM

--  
没有人知道么,我很急,请高手一定帮帮忙啦
--  作者:102niu
--  发布时间:6/19/2006 7:26:00 AM

--  
我知道了,是var objNode = objXMLDoc.selectSingleNode(NodeName);的问题,应该写成var objNode = objXMLDoc.selectSingleNode("//"+NodeName);
这个小问题弄了几个小时,现在好了,呵呵
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms