2010-03-12 51 views
0

好所以,我正在學習/使用xpath的基本應用程序,有效地將數據從另一個網站上剝離。xPath分組如何?

我需要獲得每個人的知識國家/郊區/地區。
在某些情況下,您可以獲得澳大利亞/維多利亞州/墨爾本。
其他可能只是澳大利亞/墨爾本。
甚至只是墨爾本或澳大利亞。

所以我目前能夠查看下面的代碼,並用字符串xpath //table/tr/td/table/tr/td/font/a翻錄所有的信息。這會返回每個條目,但我真正想要的是將每個分組單獨分組。

我希望有人在那裏地球上知道我只是試圖解釋......,可以幫助...

美好的一天!

源文檔中包含的數據是這樣的:

<tr> 
    <td> 
     <font face="arial" size="2"> 
      <strong>Location:</strong> 
      <a href="http://maps.google.com/maps?q=Australia" target="mapblast" style="text-decoration:none">Australia</a>, 
      <a href='http://maps.google.com/maps?q=Australia%20Victoria'target="mapblast" style='text-decoration:none'>Victoria</a>, 
      <a href='http://maps.google.com/maps?q=Australia%20Melbourne%20Victoria'target="mapblast" style='text-decoration:none'>Melbourne</a> 
     </font> 
    </td> 
</tr> 
+1

我想評論一下你使用XML和HTML文檔的事實。我無法看到整個文檔,因此無法確定您是否使用XHTML。如果您在此處使用HTML,則可能會遇到加載HTML文件的問題,因爲它們可能是「非格式良好」的XML。 第二條評論我想說的是你使用「//」開始你的XPath查詢。這意味着「文檔中的所有節點」。根據您的要求,我認爲「// td/font/a」就足夠了。不一起使用'//'是最好的選擇。 – 2010-03-12 17:54:04

回答

1

要找到每個人的記錄,XPath查詢//table/tr/td/table/tr/td/font,或者你可以使用//td/font[strong = 'Location:']。這將返回一個包含每個人1個元素的集合。

要找到特定font下的a元素,您可以使用font中的XPath a。這也可以通過迭代元素的children集合來完成。