如何使用js ajax获取xml标记的名称

时间:2012-06-12 20:53:29

标签: javascript xml ajax

我有一个xml文件,我正在使用ajax:

<country name="UK">
        <person>
            <name>daniel</name>
            <age>25</city>
        </person>
        <person>
            <name>james</name>
            <age>22</city>
        </person>
        <person>
            <name>brandy</name>
            <age>16</city>
        </person>
        <person>
            <name>nathan</name>
            <age>66</city>
        </person>
    </country>
    <country name="france">
        <person>
            <name>paul</name>
            <age>28</city>
        </person>
        <person>
            <name>pierr</name>
            <age>22</city>
        </person>
    </country>

我的JS看起来像这样:

<script type="text/javascript">
function loadXMLDoc() {
xmlhttp=null;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() 
{
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
          {
          xmlDoc=xmlhttp.responseXML;
          var txt="";
          x=xmlDoc.getElementsByTagName("name");
          for (i=0;i<x.length;i++)
            {
            txt=txt + x[i].childNodes[0].nodeValue + "<br />";
            }
          document.getElementById("myDivName").innerHTML=txt;
          //somehow get the country of that person to write here
          document.getElementById("myDivCountry").innerHTML=txt;

          }
      xmlhttp.open("GET","people.xml",true);
      xmlhttp.send();
      }

}
</script>

JS将打印该人的姓名,但如何获取该人所属国家的名称?

这是为此问题编写的所有示例内容...我没有正确的xml - 它是来自我想要过滤的其他位置的提要

感谢

1 个答案:

答案 0 :(得分:0)

您可以使用parentNode属性访问country代码及其属性名称name以获取其值:

var countryNames = "";
for (var i = 0; i < x.length; i++)
{
    txt += x[i].childNodes[0].nodeValue + "<br />";
    countryNames += x[i].parentNode.parentNode.name + "<br />";
}