以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  怎样用DOM显示xml全部标记极其结点值?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=48850)


--  作者:rainskirt
--  发布时间:6/22/2007 9:41:00 AM

--  怎样用DOM显示xml全部标记极其结点值?
我有一个xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<customers>
   <customer ID="TT89">
    <username>Jerry</username>   
    <address>
        <city>guilin</city>
        <zipcode>541004</zipcode>  
    </address>
   </customer>
</customers>
想通过文档对象模型DOM显示:
customers
  customer:ID=TT89
  username:Jerry
  address
    city:guilin
    zipcode:541004
就是想把所有标记和结点值输出
--  作者:Qr
--  发布时间:6/22/2007 11:00:00 AM

--  
以代码并非答案,只是想告诉你,nodeName和nodeValue分别取得节点名和节点值,至于所有结果输出,要用到递归,遍历所有节点,一个一个输出即可:
var o = xmlDoc.documentElement.getElementsByTagName("*");
for(i=0;i<o.length;i++)alert(o[i].nodeName+o[i].firstChild.nodeValue);
--  作者:rainskirt
--  发布时间:6/22/2007 4:57:00 PM

--  
这个我也知道啊,有代码就最好了,总调试不成功
--  作者:rainskirt
--  发布时间:6/22/2007 5:17:00 PM

--  
斑竹,回答我啊,我的代码是这个,只能显示一部分,你帮我看错在哪里??
<html>
<head>
<TITLE>code listing 9-8</TITLE>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">xmlDoc=new ActiveXObject("Microsoft.XMLDOM");.async="false";.load("9-8.xml");root=xmlDoc.documentElement;.write(root.nodeName+"<br/>");child=root.firstChild;.write(child.nodeName);.write(child.childNodes[0].attributes.nodeName);
document.write("=");.write(child.childNodes[0].attributes.value);(i=0;i<child.childNodes.length;i++)
{
document.write(child.childNodes[i].nodeName);
document.write("=");
document.write(child.childNodes[i].childNodes[0].nodeValue);
document.write("<br/>");
var sun=child.firstChild;
for(j=0;i<sun.childNodes.length;j++)
  {
    document.write(sun.childNodes[j].nodeName);
document.write("=");
document.write(sun.childNodes[j].childNodes[0].text);
document.write("<br/>");
}
}

</SCRIPT>

</BODY>
</html>


--  作者:Qr
--  发布时间:6/24/2007 4:35:00 PM

--  
偶要看得懂你的代码就不是斑竹了,真是服了你了

<script language="javascript">
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
xmlDoc.async = false;
xmlDoc.load("test.xml");
var root = xmlDoc.documentElement;

Recursion(root);

function Recursion(o){

 if(o.nodeType==1 || o.nodeType==2){
  document.write(o.nodeName);
 }
 if(o.attributes){
  for(i=0;i<o.attributes.length;i++){
   format = (i>0)?" ":":";
   document.write(format+o.attributes[i].nodeName+"="+o.attributes[i].text);
  }
 }
 if(o.hasChildNodes && o.firstChild.nodeType!=3){
  document.write("< br >");//br要去掉空格
  return arguments.callee(o.childNodes[0]);
  
 }else{
  document.write(":"+o.text);
  document.write("< br >");//br要去掉空格
  return arguments.callee(o.nextSibling);
 }
}
</script>


运行结果如下:
customers
customer:ID=TT89
username:Jerry
address
city:guilin
zipcode:541004

结贴!


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
109.375ms