我在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)
试试这个CssSelector
input[name^='models'][name$='.name']
这将为您提供名称以模型开头并以.name
结尾的所有输入使用
还可以在XPath中执行此操作//input[starts-with(@name, 'models') and ends-with(@name, '.name')]
但只有使用XPath 2.0的浏览器才支持此功能,因此 在Chrome中工作
另一种方法是使用Xpath 1.0兼容的方式,这是不可读的
//input[starts-with(@name, 'models') and substring(@name, string-length(@name) - string-length('name') +1) = 'name']