2011-11-10 60 views
2

在这里,我想循环通过<detail>元素。虽然我可以在代码中指定<detail>标签名称,但我无法使用子代的标签名称。我想知道这些元素的标签名称及其值。如何在不指定标签名称的情况下读取XML中的子节点名称及其值?

我该如何循环浏览并执行此操作?

<?xml version="1.0" encoding="utf-8" ?> 
<body> 
    <detail> 
    <FirstName>t1 </FirstName> 
    <LastName>t2</LastName> 
    <Company>t3</Company> 
    <Country>t4</Country> 
    <Proviance>MP</Proviance> 
    <city>indore</city> 
    </detail> 

    <detail> 
    <FirstName>t5 </FirstName> 
    <LastName>t6</LastName> 
    <Company>t7</Company> 
    <Country>t8</Country> 
    <Proviance>t9</Proviance> 
    </detail> 

    <detail> 
    <FirstName>t10 </FirstName> 
    <LastName>t11</LastName> 
    <Company>t12</Company> 
    <Country>t13</Country> 
    <Proviance>t14</Proviance> 
    </detail> 

</body> 

回答

8

怎么样;

var details = xml.getElementsByTagName("detail"); 
    for (var i = 0; i < details.length; i++) { 
     if (details[i].childNodes) { 
     for (var j = 0; j < details[i].childNodes.length; j++) { 
      var detail = details[i].childNodes[j]; 
      if (detail.nodeType === 1) 
       alert("details node " + (i + 1) + ": " + detail.nodeName + "=" + detail.firstChild.nodeValue); 
     } 
    } 

}

+2

+1明确&&简单。伟大的提示! –

+0

xmlhttp.getElementsByTagName不是一个函数: - – NoviceToDotNet

+0

XML的例子是一个DOM对象不是一个XMLHTTP对象,所以它的'xmlhttp.responseXML' –

1

Here是一个用JavaScript解析XML的教程。也许它有帮助。

提示:搜索标记名的页面

1

的JavaScript读取XML另一位伟大的article上。

本教程仅涵盖IE支持脚本,一点点阅读可能会帮助您使其与其他浏览器兼容。

你可以在谷歌搜索“在Firefox浏览器XML语法分析器”这个文本将给予示例代码更多的结果。

相关问题