2010-04-26 18 views
5

Si tiene el código XML a continuación en $ (XML), se llega a caídos usando:jQuery - xpath find?

$(xml).find("animal").find("dog").find("beagle").text() 

¿Hay una manera equivalente en jQuery para usar XPath como

$(xml).xpathfind("/animal/dog/beagle").text()? 

<animal> 
    <dog> 
     <beagle> 
      droopy 
     </beagle> 
     ... 

Respuesta

5

jQuery utiliza para apoyar muy XPath básico, incluido el ejemplo que diste.

$(xml).find("animal/dog/beagle") 

EDIT: Tienes razón, han quitado al parecer desde el núcleo, así que hay que utilizar una "compatibilidad" plugin.

EDIT: Actualización enlace a XPath complemento XPath Plugin

+1

Lo intenté, pero no funcionó. La sintaxis del selector CSS, "animal> perro> beagle" sí. Intenté "/ a/d/b", "// a/d/b" también. ¿Debo incluir un plugin? – Steve

+0

Creo que tiene que ver con la barra diagonal. Pruebe "a/d/b" en lugar de "/ a/d/b" –

+0

Sí, probé un antiguo plugin xpath de Resig, pero al ver la fuente, se obtuvo una cobertura mínima de xpath. Oh, bueno, el selector CSS lo hará. Solo quería asegurarme de que si xpath formaba parte de la última jQuery. – Steve

4

jQuery soporta XPath base efectivamente, lo que sólo puede utilizar find.

Como alternativa, use la sintaxis del selector de CSS. Para su ejemplo particular, usaría $(xml).find("animal > dog > beagle").text()

+0

Y para obtener el valor del atributo puede usar '$ (xml) .find (" element "). Attr (" attribute ")' – sree