2010-07-09 77 views
0

我試圖提取使用硒和perl輸入字段中的所有名稱值。值的一部分,足以確定它是已知的,其餘的是未知的:與硒和perl XPath循環

這個XPath的工作原理中找到所有相關的匹配:

//tr/td//input[contains(@name,'partofname')] 

所以,在Perl:

my $xpath = qq(//tr/td//input[contains(\@name,'partofname')]); 
my $count = $sel->get_xpath_count($xpath); 

很好,$ count給出了合適的匹配次數。

但是,如何提取每個單獨匹配的@name屬性的值?

我明白一個道理是構建一個循環:

foreach my $row (1 .. $count) { 
#extract here 
}; 

不過,我似乎無法構建一個XPath表達式將努力找到每個$行的表達相匹配。所以我認爲這是正確的xpath表達式來獲得我需要幫助的每個單獨的匹配。

任何指針讚賞

回答

1

嘗試//tr/td/descendant::input[contains(@name,'partofname')][1]

與櫃檯更換1。如果這不能爲你的問題添加一些HTML,那麼我可以建議一個更好的XPath? 。

+0

您好 - 感謝您的建議,但由此產生: 無效的xpath [2]:// TR/TD /後代::輸入[含有( 每個節點 的HTML只是一個表,其中行和一些表數據條目 - 其中一個包含輸入屬性,包括名稱,ID等 – CColin 2010-07-11 10:15:52

+0

你的HTML的一個片段仍然是有用的 – 2010-07-11 10:59:52

+0

什麼最小尺寸的代碼段會有用嗎?每一行 - 會有一行有幾個​​標籤,其中一個包含追求的屬性,做什麼? – CColin 2010-07-12 05:35:23