2011-08-16 33 views
29

jsoup https://github.com/jhy/jsoup/pull/80 पर xpath समर्थन जोड़ने से संबंधित प्रगति में कुछ काम है।क्या jsoup xpath का समर्थन करता है?

  • क्या यह काम कर रहा है?
  • मैं इसका उपयोग कैसे कर सकता हूं?
+0

इस विषय पर बहुत सारी जानकारी वहाँ बाहर है: https://stackoverflow.com/questions/11816878/jsoup- सीएसएस-चयनकर्ता-कोड-एक्सपैथ-कोड-शामिल https://stackoverflow.com/questions/16335820/convert-xpath-to-jsoup-query https://stackoverflow.com/questions/11791596/how-to-get- पूर्ण-पथ-ए-एचटीएमएल-तत्व https://groups.google.com/forum/?fromgroups#!topic/jsoup/lj4_-EJwH1Q –

उत्तर

11

JSoupXPath का समर्थन नहीं करता अभी तक है, लेकिन आप XSoup कोशिश कर सकते हैं - "XPath साथ Jsoup"

@Test 
public void testSelect() { 

    String html = "<html><div><a href='https://github.com'>github.com</a></div>" + 
      "<table><tr><td>a</td><td>b</td></tr></table></html>"; 

    Document document = Jsoup.parse(html); 

    String result = Xsoup.compile("//a/@href").evaluate(document).get(); 
    Assert.assertEquals("https://github.com", result); 

    List<String> list = Xsoup.compile("//tr/td/text()").evaluate(document).list(); 
    Assert.assertEquals("a", list.get(0)); 
    Assert.assertEquals("b", list.get(1)); 
} 

वहाँ आप भी सुविधाओं और XPath का भाव है कि XSoup द्वारा समर्थित हैं की एक सूची मिलेगी:

यहाँ एक उदाहरण परियोजनाओं Github साइट (link) से उद्धृत है।

1
नहीं

अभी तक है, लेकिन परियोजना है JsoupXpath it.For उदाहरण बनाने के लिए,

String xpath="//div[@id='post_list']/div[./div/div/span[@class='article_view']/a/num()>1000]/div/h3/allText()"; 
String doc = "..."; 
JXDocument jxDocument = new JXDocument(doc); 
List<Object> rs = jxDocument.sel(xpath); 
for (Object o:rs){ 
    if (o instanceof Element){ 
     int index = ((Element) o).siblingIndex(); 
     System.out.println(index); 
    } 
    System.out.println(o.toString()); 
} 
संबंधित मुद्दे