2009-11-04 64 views
0

使用XPath和HTML Agility Pack,我需要使用color:#ff00ff選擇destination文本。如何選擇使用近元素的xml節點

我的HTML看起來像這樣:

<table> 
    <tr style="color:#ff00ff"> 
     <td></td> 
    </tr> 
    <tr> 
     <td>destination</td> 
    </tr> 
    <tr> 
     <td></td> 
    </tr> 
    <tr> 
     <td>not destination</td> 
    </tr> 
</table> 
+0

什麼技術? XPath的?還有別的嗎? – 2009-11-04 18:04:00

+0

html敏捷性的xpath – ebattulga 2009-11-04 18:34:15

回答

2
 
/table/tr[@style = "color:#ff00ff"]/following-sibling::tr[1]/td[1]/text() 

選擇具有style="color:#ff00ff"<tr>,並從那裏,第一<td>孩子先上後下<tr>的文本。

爲了加強安全性,你可以使用:

 
tr[translate(@style, ' ', '') = "color:#ff00ff"] 

這將刪除屬性值的任何空間,讓事情變得更加獨立於HTML源位。

0

使用jQuery它可能是這個樣子:

$('tr[style*="color:#ff00ff"]').next('tr').children().text(); 

這在很大程度上取決於你的確切文件結構和風格的定義,雖然。它會發現任何包含字符串「color:#ff00ff」的樣式(完全沒有空格等)。從那一行開始,它會選擇下一個兄弟行,並從它的所有直接孩子那裏獲取文本內容。在你的情況下,這將是單列元素。