2010-11-16 17 views
17

Una respuesta simple es necesaria para una pregunta simple.¿Cuál es una forma simple en java para evaluar un xpath en una cadena y devolver una cadena de resultados

Por ejemplo:

String xml = "<car><manufacturer>toyota</manufacturer></car>"; 
String xpath = "/car/manufacturer"; 
assertEquals("toyota",evaluate(xml, xpath)); 

¿Cómo puedo escribir el método de evaluar de manera sencilla y fácil de leer que funcionará para cualquier XML y XPath bien formada dado.

Obviamente hay muchas maneras de lograr esto, pero la mayoría parece muy detallado.

¿Alguna de las formas simples que me faltan/bibliotecas que pueden lograrlo?

Para los casos en que se devuelven varios nodos, solo quiero la representación de cadena de esto.

Respuesta

36

Aquí tienes, lo siguiente se puede hacer con Java SE:

import java.io.StringReader; 
import javax.xml.xpath.XPath; 
import javax.xml.xpath.XPathFactory; 
import org.xml.sax.InputSource; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     String xml = "<car><manufacturer>toyota</manufacturer></car>"; 
     String xpath = "/car/manufacturer"; 
     XPath xPath = XPathFactory.newInstance().newXPath(); 
     assertEquals("toyota",xPath.evaluate(xpath, new InputSource(new StringReader(xml)))); 
    } 

} 
Cuestiones relacionadas