2016-12-25 32 views
0

我曾與在XPATH語法以下問題,我很欣賞你的,我有錯誤類別指示:的XPath大成不方便開始,與

如果我使用://@id,它返回正確的結果,如果

//*[@id(starts-with(.,17))] 
//*@id[starts-with(.,17)] 

在哪裏可以是錯誤:我想用starts-with,使之更加具體,它不爲我工作,我想用?

回答

1

您的第一次嘗試XPath不起作用,因爲@id()無效XPath表達式,也許您打算使用[]在此處構造謂詞。至於第二次嘗試,以下部分未被識別爲有效的XPath表達式:*@id。另一件事是starts-with()期望這兩個參數是字符串類型。糾正這些錯誤會得到你的XPath,將正確返回元素,其中id屬性值與17開始:

//*[@id[starts-with(.,'17')]] 

以上的XPath可以簡化一點,如下所示:

//*[starts-with(@id,'17')] 

如果你的意思是返回id屬性本身而不是元​​素,那麼需要修改XPath,如其他答案中所述:

//@id[starts-with(.,'17')]