2011-12-23 19 views
17

私はクラススパンの属性を一致させるために、次のXPathを持っている:のXPathワイルドカード

//span[@class='amount'] 

私は「量」のクラス属性を持つすべての要素を一致させたいだけでなく、などの他のクラスを持っていることよく

//span[@class='*amount*'] 

しかし、これはできません...どうすればいいですか?

答えて

28

は、次の式を使用して参照してください。これは、最初の4つのspanの要素ではなく、最後のいずれかを選択します

<root> 
    <span class="test amount blah"/> 
    <span class="amount test"/> 
    <span class="test amount"/> 
    <span class="amount"/> 
    <span class="someamount"/> 
</root> 

次の入力に上記の式をテストします。

+0

これはまさに私が探しているものです、ありがとうございます。 –

+0

もし私がスパンタグ内のテキストコンテンツを取得したいのであれば、そのコードは何でしょうか。結果をnodelistに保存し、nodelist.item(0).getFirstChild()。getNodeValue()を使用してコンテンツを印刷しようとしました。しかし、これは何も返されません。私を助けてください。 – TheGaME

+0

それは働いて...!ありがとう –

10

containsメソッドを使用する必要があります。あなたは自分自身でcontainsを使用することができますが、それはまたsomeamountのようなクラスを一致します

//span[contains(concat(' ', @class, ' '), ' amount ')] 

How to use XPath contains() here?http://www.exampledepot.com/egs/org.w3c.dom/xpath_GetElemByAttr.html

//span[contains(@class,'amount')]

+6

残念ながら、これも 'class =" lookamountain "'と一致します。 @ lwburkには正しい答えがあります。 –