Un habitual $.ajax
con dataType: "xml"
hará el truco, a continuación, se puede navegar por el contenido de los selectores de jQuery como si fuera una simple página web (por ejemplo, la función attr
en el ejemplo para recuperar el campo "Código" de cada nodo libro o la función find
para encontrar tipos de nodos específicos).
Por ejemplo, se podría hacer esto para encontrar un libro específico por título:
$(xml).find("book[title='Cinderella']")
donde xml
son los datos al controlador de success
recibe de $.ajax
.
Aquí está el ejemplo completo:
<!DOCTYPE html>
<html>
<head>
<title>jQuery and XML</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="language" content="en" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
</head>
<body
<div id="output"></div>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
dataType: "xml",
url: "example.xml",
success: function(xml){
$(xml).find("book").each(function(){
$("#output").append($(this).attr("code") + "<br />");
});
}
});
});
</script>
</body>
</html>
Y un archivo XML coincidente:
<?xml version="1.0" encoding="UTF-8"?>
<books title="A list of books">
<book code="abcdef" />
<book code="ghijklm">
Some text contents
</book>
</books>
Gracias! Si no quiero encontrarlo y el resultado solo contiene " ¿cómo puedo hacer referencia al elemento" libro "? –
$ (xml) .find (" libro ") le da una lista de los nodos del libro. En el ciclo "cada", $ (esto) es una referencia al nodo del libro. – wildpeaks
sí, pero para mi código no quiero el hallazgo porque es innecesario, solo tengo un elemento del libro, ¿es posible? para hacer referencia directamente sin encontrar? –