0

我有一個Java代碼,可以讀取URL的源並保存到文件(source.html),現在從保存的頁面中,我想使用XPath提取一些值。假設我想讀取價格 - //div [@itemprop='price'] //text()在JAVA中使用Xpath解析HTML文件

如何做到這一點,我可以直接在保存的HTML頁面中做到這一點,或者我應該先將其轉換爲XML文件,然後使用XPath。我聽說過關於HTML清潔器/解析器的信息,我應該在這裏使用它嗎?請不要指向另一個網站尋求答案。如果是這樣的話,我可以到一個地方,我可以做一個直接和簡單的課程。修改下面的代碼將非常有幫助。

import java.io.FileWriter; 
import java.io.IOException; 
import java.io.PrintWriter; 

import org.jsoup.Jsoup; 

public class jSoupContentRead { 
    @SuppressWarnings("resource") 
    public static void main(String[] args) throws IOException { 
     FileWriter FR = new FileWriter("source.html"); 
     PrintWriter op = new PrintWriter(FR); 

     org.jsoup.nodes.Document doc = Jsoup.connect(
       "http://itunes.apple.com/us/book/a-way-home/id982665320?mt=11") 
       .get(); 

     op.write(doc.toString()); 
     System.out.println(doc.toString()); 
    } 
} 
+1

您正在使用JSoup。它的查詢語言允許非常相似的東西,爲什麼要使用XPath? – RealSkeptic

+0

@ RealSkeptic - 你是對的,但我更喜歡xpath,因爲它對我來說很容易使用。 –

+0

如果你真的「喜歡學習」,那麼學習JSoup作爲@RealSkeptic建議,因爲它是正確的工具。 –

回答

0

通常(跨語言)XPath將被應用於DOM結構。在PHP中有一個非標準的過程:

  1. 獲取HTML
  2. 使它成爲一個有效的XML(可能是一個可選步驟)
  3. 做它的一個DOMDocument對象實例
  4. 它的DOMXPath對象製作實例
  5. 將xpath查詢應用於此DOMXPath實例。查看example in php

我覺得在JAVA應該有類似的東西。