Ruby 查找忽略字符串中数字的xpath
实际的xpath是Ruby 查找忽略字符串中数字的xpath,ruby,regex,ruby-on-rails-3,xpath,Ruby,Regex,Ruby On Rails 3,Xpath,实际的xpath是/*[@id=“location_in_196548881_chzn”],中间的数字是随机生成的。我要搜索此节点 当id为常量时,我对搜索的调用是这样的 find(:xpath,'//*[@id="location_in_196548881"]') 试过了,但没用 //id[contains(text(), 'location_in_')] 在查找此id时,如何忽略中间的数字 HTML代码片段是 <div class='control-group'> <l
/*[@id=“location_in_196548881_chzn”]
,中间的数字是随机生成的。我要搜索此节点
当id为常量时,我对搜索的调用是这样的
find(:xpath,'//*[@id="location_in_196548881"]')
试过了,但没用
//id[contains(text(), 'location_in_')]
在查找此id时,如何忽略中间的数字
HTML代码片段是
<div class='control-group'>
<label class='control-label' for='inputLocation'>
Location
</label>
<div class='controls location'>
<select class="span6 first" data-chosen_select="true" data-placeholder="via Location" id="location_in_196548881" name="browse[relation][location_in][]"><option value=""></option>
<optgroup label="Top"><option value="43705">Bangalore</option>
<option value="43767">Chennai</option>
位置
班加罗尔
钦奈
您的思路是正确的,但是如果原始XPath适用于静态数字,那么只需将@id='
部分替换为您在第二个XPath中尝试的内容,如下所示:
//*[contains(@id,'location_in_')]
如果id
是一个属性,那么您使用第一个XPath正确地引用了它,这就是为什么您会得到一些东西。在第二次调用中,您将引用它,就像它是一个包含您要查找的文本的节点一样
换句话说,//id[contains(text(),'location_In_')]
适用于以下情况
<root>
<id>location_in_12345</id>
</root>
提供此查找(:xpath,“/*[contains(@id,“location\u in”]]),但得到的结果是-找不到xpath“/*[contains(@id,\“location\u in””)”)”)“您能发布您要定位的XML片段吗?位置班加罗尔·钦奈(Bangalore ChennaiI)是个新手,不知道如何从中生成xml片段。对于未格式化的输出,非常抱歉。请将XML放入原始问题中,以便对其进行格式化;)
<root>
<node1 id="location_in_1235">text</node1>
<node2 id="location_in_5678">text</node2>
</root>
find(:xpath,'//*[contains(@id,"location_in_")]')