2014-11-17 61 views
2

我有一個網站上的多個表像這樣:使用xidel提取鍵值對

<table> 
    <tr> 
    <td>Name</td> 
    <td>foo</td> 
    </tr> 
    <tr> 
    <td>Count</td> 
    <td>15</td> 
    </tr> 
    <tr> 
    <td>Date</td> 
    <td>2014-11-17</td> 
    </tr> 
</table> 
<table> 
    <tr> 
    <td>Name</td> 
    <td>bar</td> 
    </tr> 
    <tr> 
    <td>Count</td> 
    <td>42</td> 
    </tr> 
    <tr> 
    <td>Date</td> 
    <td>2014-12-24</td> 
    </tr> 
</table> 
... 

我想收到這樣的事情

foo 15 
bar 42 

我在xidel第一次嘗試xidel --xpath "//table/tr[1]/td[2]" --xpath "//table/tr[2]/td[2]"但這是給

foo 
bar 

15 
42 

如何在一行中提取兩個值?

回答

2

使用XPath或XQuery 3.0://table/tbody/(tr[1]/td[2] || ' ' || tr[2]/td[2])。我認爲你需要明確地要求該版本,至少我需要在http://videlibri.sourceforge.net/cgi-bin/xidelcgi上這樣做。我解析爲HTML解析器添加一個tbody元素,路徑也需要。

0
xidel-0.9.5.4998.exe -s --input-format=xml <input>^
        --xquery "//table/concat(tr[1]/td[2],'&#09;',tr[2]/td[2])" 
foo  15 
bar  42 
+0

這看起來像一個命令,但它沒有正確包裝,它沒有描述你在做什麼以及它是如何工作的。 –