要求用JS调出XML里面的内容。。而且可以增加删除DOM节点。。代码如下:
XML的:
<?xml version="1.0" encoding="gb2312"?>
<cartoon>
<car>
<name> 海贼王 </name>
<rank> 第一</rank>
</car>
<car>
<name>海贼王</name>
<rank>第二</rank>
</car>
<car>
<name>海贼王</name>
<rank>第三</rank>
</car>
<car>
<name>海贼王</name>
<rank>第四</rank>
</car>
<car>
<name>海贼王</name>
<rank>第五</rank>
</car>
<car>
<name>海贼王</name>
<rank>第六</rank>
</car>
<car>
<name>海贼王</name>
<rank>第七</rank>
</car>
</cartoon>JS代码如下:
html>
<head>
<script language="JavaScript"
for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("main.xml");
nodes = xmlDoc.documentElement.childNodes;
op.innerText = nodes.item(0).text;
paradise.innerText = nodes.item(1).text;
xinfeng.innerText = nodes.item(2).text;
ganglian.innerText = nodes.item(3).text;
heita.innerText = nodes.item(4).text;
huzixiaoji.innerText = nodes.item(5).text;
FT.innerText = nodes.item(6).text;
function tianjia()
{
 var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.load("main.xml");
  var root = xmlDoc.selectSingleNode("cartoon");
  var xe1=xmlDoc.createElement("car");
  var xesub1=xmlDoc.createElement("name"); 
  xesub1.innerText="langxin";
  xe1.appendChild(xesub1);
  var xesub2=xmlDoc.createElement("rank"); 
  xesub2.innerText="diba";  
  xe1.appendChild(xesub3); 
  root.appendChild(xe1);
  xmlDoc.save("main.xml");
}
function shanchu()
{
  var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.load("main.xml");
  currNode=doc.documentElement.childNodes.item(0);
  xmlDoc.documentElement.removeChild(currNode);
  xmlDoc.save("main.xml");
}
 </script><title>动漫排行榜</title>
</head><body bgcolor="pink">
<center>
<h1>09年我最喜欢动漫排行榜</h1>
</center>
<hr>
<span id="op"></span><hr>
<span id="paradise"></span>
<hr>
<span id="xinfeng"></span>
<hr>
<span id="ganglian"></span>
<hr>
<span id="heita"></span>
<hr>
<span id="huzixiaoji"></span>
<hr>
<span id="FT"></span>
<form action="" method="post" id="form1" name="form1"> 
<input type="button" value="添加" name="tianjia" onclick="tianjia()">
</form>
<form action="" method="post" id="form2" name="form2"> 
<input type="button" value="删除" name="shanchu" onclick="shanchu()">
</form>
</body>
</html>  我想请问一下,为什么每次我点添加或者删除按钮的时候,总是显示找不到属性跟方法呢?可是这些方法都查了书的,大小写没有错误啊。想问问到底是哪里出错了。。
  抱歉哈。。我没有积分的。。不能给分。。

解决方案 »

  1.   

    看来你的愿望可能实现不了了,有很多处错误。
    详见注释。
    <html> 
    <head> 
    <script language="JavaScript" for="window" event="onload"> 
    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async="false"; 
    xmlDoc.load("main.xml"); 
    nodes = xmlDoc.documentElement.childNodes; 
    op.innerText = nodes.item(0).text; 
    paradise.innerText = nodes.item(1).text; 
    xinfeng.innerText = nodes.item(2).text; 
    ganglian.innerText = nodes.item(3).text; 
    heita.innerText = nodes.item(4).text; 
    huzixiaoji.innerText = nodes.item(5).text; 
    FT.innerText = nodes.item(6).text; 
    </script>
    <!-- 下面的函数不能定义到上面这个script标签里面,上面的script已经指定了for和event,而点击按钮的对象和事件与上面定义的不符合,因此调用不到 -->
    <script language="JavaScript">
    function tianjia() 

    var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async="false"; 
      xmlDoc.load("main.xml"); 
      var root = xmlDoc.selectSingleNode("cartoon"); 
      var xe1=xmlDoc.createElement("car"); 
      var xesub1=xmlDoc.createElement("name"); 
      // xesub1.innerText="langxin"; 
      // xml不是html,没有innerText属性,报的属性问题就是这个
      xesub1.appendChild(xmlDoc.createTextNode("langxin"));
      xe1.appendChild(xesub1); 
      var xesub2=xmlDoc.createElement("rank"); 
      // xesub2.innerText="diba";  
      // xml不是html,没有innerText属性,报的属性问题就是这个
      xesub2.appendChild(xmlDoc.createTextNode("diba"));
      xe1.appendChild(xesub2); 
      root.appendChild(xe1); 
      xmlDoc.save("main.xml"); // 这个一般是没有权限保存的,因此你的愿望恐怕实现不了了

    function shanchu() 

      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async="false"; 
      xmlDoc.load("main.xml"); 
      currNode=doc.documentElement.childNodes.item(0); 
      xmlDoc.documentElement.removeChild(currNode); 
      xmlDoc.save("main.xml"); 

    </script> <title>动漫排行榜 </title> 
    </head> <body bgcolor="pink"> 
    <center> 
    <h1>09年我最喜欢动漫排行榜 </h1> 
    </center> 
    <hr> 
    <span id="op"> </span> <hr> 
    <span id="paradise"> </span> 
    <hr> 
    <span id="xinfeng"> </span> 
    <hr> 
    <span id="ganglian"> </span> 
    <hr> 
    <span id="heita"> </span> 
    <hr> 
    <span id="huzixiaoji"> </span> 
    <hr> 
    <span id="FT"> </span> 
    <div>
    <input type="button" value="添加" name="tianjia" onclick="tianjia()"> 
    </div>
    <div>
    <input type="button" value="删除" name="shanchu" onclick="shanchu()"> 
    </div>
    </body> 
    </html>