2017-11-29 2 views
0

私はhtmlでいくつかの入力を持っています。ワイルドカード文字を含むxpathクエリを作成して、name属性の数値を置き換えてすべての入力要素を選択するにはどうすればよいですか?私は//div/input[contains(@name, "name")]を試しましたが、動作しますが、私はワイルドカードを使うことを好みます。 //div/input[@name="models[.*.].name"]のようなものです。複数の要素を選択するためにワイルドカードを使用

HTML:

<div> 
    <input type="text" name="models[1].name" value=""> 
    <input type="text" name="models[2].name" value=""> 
    <input type="text" name="models[3].name" value=""> 
    <input type="text" name="models[4].name" value=""> 
    <input type="text" name="models[5].name" value=""> 
    <input type="text" name="models[6].name" value=""> 
</div> 
+0

何あなたは実際に欲しいですか? –

+0

コードトライアルを共有できますか? – DebanjanB

+0

begin-withとends-ofの組み合わせを使用できます。 - https://stackoverflow.com/questions/26217002/how-to-use-starts-with-contains-and-ends-with-in-xpath- to-find-the-xml-n – Grasshopper

答えて

0

もあります。これは、あなたのモデルで始まり、.nameの

で終わる名前を持つすべての入力を取得します

input[name^='models'][name$='.name'] 

このCssSelectorをお試しください使用してXPathでこれを行う方法

//input[starts-with(@name, 'models') and ends-with(@name, '.name')] 

しかし、これはXPath 2.0の使用のブラウザでサポートされているので、クロム

代替が本当に読めないXPath 1.0の互換性のある方法を使用することです

でこの意志ない仕事

//input[starts-with(@name, 'models') and substring(@name, string-length(@name) - string-length('name') +1) = 'name'] 
関連する問題