2010-12-01 18 views
1

Quelle bibliothèque me permettrait d'évaluer xpath sur une chaîne html?Java: comment analyser une chaîne html pour l'outil XML consommer?

J'ai essayé d'utiliser le package javax mais cela semble à l'échec:

String docroot = "<div><i>items <b>sold</b></i></div>"; 
XPath xxpath = XPathFactory.newInstance().newXPath(); 
InputSource docroot = new InputSource(new StringReader(subelements)); 
String result = (String) xxpath.evaluate("//b", docroot, XPathConstants.STRING); 
+3

S'il vous plaît se rappeler la prochaine fois pour développer « semble échouer » substantionally. –

Répondre

3

Effectuez les opérations suivantes au lieu, il y avait des erreurs dans votre exemple de code:

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

public class Demo { 

    public static void main(String[] args) throws Exception { 
     String docroot = "<div><i>items <b>sold</b></i></div>"; 
     XPath xxpath = XPathFactory.newInstance().newXPath(); 
     InputSource inputSource = new InputSource(new StringReader(docroot)); 
     String result = (String) xxpath.evaluate("//b", inputSource, XPathConstants.STRING); 
     System.out.println(result); 
    } 

} 
2

Vous souhaitez une bibliothèque d'analyse HTML HTML capable de produire un objet Document XML valide. Basé sur ce library comparison non scientifique, il semble HTML Cleaner ferait l'affaire.

Sur le site Cleaner HTML:

Bien que le motif principal était de préparer HTML ordinaire pour le traitement XML avec XPath, XQuery et XSLT, des données structurées produites par HtmlCleaner peuvent être consommés et traitées dans le menu d'autres façons.

Cette documentation link fournit un exemple de la façon de lire dans une chaîne HTML, exécuter une requête XPath et travailler avec les résultats.