4

selected = "selected"XPathエクストラクタを使用してプロパティを持つ最初の値を抽出したいと思います。しかし、それは私にはうまくいかないようです。

値を抽出しているhtmlは次のとおりです。

< select id="ddLocation" name="ddLocation" class="DDlocation" size="1"      onchange="jsf.util.chain(this,event,'onLocationChange();,'mojarra.ab(this,event,\'valueChange\',\'@this\',0)')"> <br>
    < option value="43" selected="selected">Pune</option> <br>
    < option value="44">Agra< /option> <br>
    < option value="45">Guntur< /option> <br>
    < option value="46">Kochi< /option> <br>
    < option value="73">Kothrud< /option> <br>
    < option value="153">Ratnagiri< /option> <br>
    < option value="156">Baner< /option>

私のXPathクエリは次のとおりです。

//select[@id="ddLocation"]/option[1]/@value

違いますか?
誰かが私にもっと良い/正しいアプローチを提案できますか?

4

2 に答える 2

7

xmlが適切な形式ではありません

オプションの前にたくさんのスペースがあり、selectは最後に閉じられていません。

<select id="ddLocation" name="ddLocation" class="DDlocation" size="1" onchange="jsf.util.chain(this,event,'onLocationChange();,'mojarra.ab(this,event,\'valueChange\',\'@this\',0)')">
    <option value="43" selected="selected">Pune </option>
    <option value="44">Agra</option>
    <option value="45">Guntur</option>
    <option value="46">Kochi</option>
    <option value="73">Kothrud</option>
    <option value="153">Ratnagiri</option>
    <option value="156">Baner</option>
</select>

最後に、XPATHは期待どおりに機能します。

//select[@id="ddLocation"]/option[1]/@value

43として出力します

編集:

以下のXPATHを使用すると、属性がどこにあるかに従って結果が得られます。selected=selected

//select[@id='ddLocation']/option[@selected='selected']/@value

JMeterを使用してテストしていませんが、XMLSPYでXPATHをチェックしています。

于 2012-07-10T07:18:20.407 に答える
1

XPath Extractorを使用してHTML(XMLではない!..)応答を解析しているため、 [ Tidy(トレラントパーサー)を使用する]オプションがチェックされていることを確認してください(XPath Extractorのコントロールパネルで)。

そして、以下のSivaの回答からより洗練されたxpathクエリを使用してください。

于 2012-07-10T10:27:34.777 に答える