2013-12-13 95 views
-1

有下面的html表格。如何使用xpath(Html敏捷包)爲「Session X」獲取所有tr如何使用xpath 1.0獲取兩個節點之間的節點?

有兩個問題,

  1. 是否有可能放鬆一點比較話X時(<tr><td colspan=15>Session X</td></tr>和下屆會議tr之間)?因爲它可能是

    Session X 
    Session X 
    session_X 
    
  2. 下屆會議文字可以比「會議X」以外的任何其他。也許最好檢查<tr>是否只包含一個<td colspan=15>

XML/HTML:

<table> 
<tr><td colspan=15>Session A</td></tr> 
....... 
<tr><td colspan=15>Session X</td></tr> 
<tr><td>...</td><td>Column header 1</td><td>value1</td><td>value2</td>......</tr> 
<tr><td>...</td><td>Column header 2</td><td>value1</td>......</tr> 
<tr><td>...</td><td>Column header 3</td><td>value1</td>......</tr> 
..... 
<tr><td colspan=15>Session Y</td></tr> <!--next session, the inner text can be anything--> 
..... 

回答

1

這應該給你tr與信息:

.//tr[preceding-sibling::tr/td/text()='Session X'][following-sibling::tr/td/text()='Session Y'] 

我不認爲你發送足夠的信息來知道如何從繼續那裏。

+0

獲得'tr'已經足夠了。但是,以下兄弟可能不完全是「會話Y」。它可以是除「會話X」以外的任何會話名稱。 – ca9163d9

+0

順便說一句,我得到了'System.Xml.XPath.XPathException:命名空間管理器或XsltContext需要錯誤。該查詢在嘗試xpath時有一個前綴,變量或用戶定義的函數。 – ca9163d9

+0

那條路上有錯誤。它應該是'follow-sibling ::'(注意兩個分號)。如前所述,'prior-sibling:tr'和'fol​​lowing-sibling:tr'似乎是命名空間前綴,而不是XPath軸。 – joemfb