2010-11-16 6 views
17

Une réponse simple nécessaire à une question simple.Quel est un moyen simple dans java pour évaluer un xpath sur une chaîne et retourner une chaîne de résultat

Par exemple:

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

Comment puis-je écrire la méthode Evaluate de manière simple et lisible qui fonctionnera pour tout donnée XML bien formé et XPath.

De toute évidence, il y a de nombreuses façons de le faire, mais la majorité semble très verbeuse.

Y a-t-il des moyens simples qui me manquent/des bibliothèques qui peuvent y parvenir?

Pour les cas où plusieurs nœuds sont retournés, je veux juste la représentation de la chaîne de ceci.

Répondre

36

Ici, vous allez, ce qui suit peut être fait avec 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)))); 
    } 

} 
Questions connexes