cómo obtener el nombre de una etiqueta xml con js ajax

Tengo un archivo xml que estoy destrozando con 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>

Cualquier mi JS se ve así:

<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>

El JS imprimirá el nombre de la persona, pero ¿cómo obtengo el nombre del país al que pertenece esa persona?

este es todo el contenido de ejemplo escrito para este problema... no arreglé el xml - es un feed de otra ubicación que quiero filtrar

gracias

Dan

preguntado el 12 de junio de 12 a las 21:06

1 Respuestas

Puede usar el parentNode propiedad para acceder country etiqueta y su nombre de atributo name para obtener su valor:

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

Respondido el 12 de junio de 12 a las 22:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.