日期:2014-05-16  浏览次数:20389 次

xml节点怎么删不掉呢?
var j=0;
var root=xmlDoc.documentElement;
nodes=root.childNodes;
for(var i=0;i<xpair.length;i++){
if(document.getElementById('name').innerHTML==xpair[i].firstChild.text){
/* var x=xmlDoc.getElementsByTagName("pair")[i];
x.removeChild(x.firstChild);
x.removeChild(x.firstChild.nextSibling);
x.removeChild(x.lastChild);
alert("bbbbbbbbbbbbb"+x.firstChild);*/
alert("bbbbbbbbbbbbb"+nodes.item(i));
root.removeChild(nodes.item(i));
$("result").innerHTML="删除成功!";
j++;
}
}

为什么我删不掉节点呢?红色部分和蓝色部分都不行,都得不到值,这是为什么呢?
下面是我的xml文件,就是把其中一个pair连里面内容一起干掉
  <?xml version="1.0" ?> 
- <root>
- <pair>
  <name>a</name> 
  <price /> 
  <data /> 
  </pair>
- <pair>
  <name>abc</name> 
  <price /> 
  <data /> 
  </pair>
- <pair>
  <name>456</name> 
  <price>123</price> 
  <data>567</data> 
  </pair>
  </root>

------解决方案--------------------
用xmlDOc = new ActiveObjects("Msxml2.DOMDocument.3.0")
...
var nodes = xmlDoc.selectNodes("//pair[child::name='" + document.getElementById('name').innerHTML + "']");
nodes.removeAll();
alert(xmlDoc.documentElement.xml);
...
------解决方案--------------------
xmlDoc.Save("path");
------解决方案--------------------
xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0")
------解决方案--------------------
JScript code
var str='<?xml version="1.0"?><root><pair><name>a</name><price /><data /></pair>"
+"<pair><name>abc</name><price /><data /></pair>'
+'<pair><name>456</name><price>123</price><data>567</data></pair></root>';
  var dom=new ActiveXObject("Microsoft.xmldom");
  dom.loadXML(str);
  dom=dom.documentElement;
  alert(dom.xml)
  var pairs=dom.getElementsByTagName("pair");
  for(var i=0;i<pairs.length;i++)
  {
     if(pairs[i].firstChild.firstChild.nodeValue=="a")
       dom.removeChild(pairs[i]);
  }
  alert(dom.xml)

------解决方案--------------------
JScript code
/*var str='<?xml version="1.0"?><root><pair><name>a</name><price /><data /></pair><pair><name>abc</name><price /><data /></pair>'+
   '<pair><name>456</name><price>123</price><data>567</data></pair></root>';*/
  var dom=new ActiveXObject("Microsoft.xmldom");
  dom.load("data.xml");//路径和文件名
  dom.async=false;//同步
  //dom.loadXML(str);
  dom=dom.documentElement;
  alert(dom.xml)
  var pairs=dom.getElementsByTagName("pair");
  for(var i=0;i<pairs.length;i++)
  {
     if(pairs[i].firstChild.firstChild.nodeValue=="a")
       dom.removeChild(pairs[i]);
  }
  alert(dom.xml)