2016-04-12 4 views
-1

要素名が[xまたはyまたはz]で、属性が定義されている場合、同じツリー内のすべての要素を選択できます。 PHPで働いている例は次のとおりです。 特定の属性を持つ特定の要素を選択するには、XPathでANDを使用しますか?

xpath = "[//*[//x or //y or //z][descendant::w[@attrib][@attrib2='".{0}."']]".format(variable) 
をしかし、それは私のために動作しません:

xpath = "//*[name()='x' or name()='y' or name()='z'][descendant::w[@attrib][@attrib2='".$variable."']]"; 

は、だから私は、Python 2.7でそれと同等の書き込みしようとしていました。実際に私はPHPコードがname()を使用する理由を見つけることができませんでしたか?私はPythonで同じことをする必要がありますか?

+0

@Epodax PHPタグを削除しました。 – sheshkovsky

答えて

2

name()='foo'の代わりに、私はむしろself::fooを使用します。次のXPathは、最初のXPathに相当するはずです。

xpath = '''//*[self::x or self::y or self::z] 
       [descendant::w[@attrib and @attrib2='{0}']] 
     '''.format(variable) 
関連する問題