web-dev-qa-db-ja.com

2つの属性に一致するXPathクエリを記述する方法

次の質問:

<div id="id-74385" class="guest clearfix" style="z-index: 999;">

上記のように、

Idとクラスの両方をチェックするXPath式が必要な場合、「and」条件LIKEを使用してそれを行うことができます。

//div[@id='id-74385'] and div[@class='guest clearfix']

これは正しい方法ですか?ここで私の実行は失敗します...助けてください!

115
shola
//div[@id='..' and @class='...]

トリックを行う必要があります。それは、必要な値のboth属性を持つdiv演算子を選択することです。

online XPath testbeds のいずれかを使用して、何かを試す価値があります。

180
Brian Agnew

または//div[@id='id-74385'][@class='guest clearfix']

85
user244278

ブライアン・アグニューの答えに追加。

//div[@id='..' or @class='...]を実行することもでき、//div[@id='..' and (@class='a' or @class='b')]内に括弧で囲まれた式を含めることもできます。

17
CodeMonkey

サンプルXML:

<X>
<Y ATTRIB1=attrib1_value ATTRIB2=attrib2_value/>
</X>

string xPath="/" + X + "/" + Y +
"[@" + ATTRIB1 + "='" + attrib1_value + "']" +
"[@" + ATTRIB2 + "='" + attrib2_value + "']"

XPathテストベッド: http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

1
Manjesh