如何按属性值查找元素?

时间:2015-10-09 09:01:56

标签: ruby xml xpath xml-parsing nokogiri

我想找到<issue> id = 6。我该怎么做?我尝试了以下方法,但它不起作用:

<issues>
<issue>
  <id>7</id>
  <project id="1" name="testProject"/>      
  <author id="1" name="testAuthor"/>     
  <subject>subject</subject>
  <start_date>2015-08-24</start_date>      
</issue>
<issue>
  <id>6</id>
  <project id="2" name="testProject2"/>      
  <author id="2" name="testAuthor2"/>     
  <subject>subject2</subject>
  <start_date>2015-08-24</start_date>    
</issue>
</issues>

我的XPath表达式尝试是:

doc.xpath("//id[contains(text(), '6']") 

doc.xpath("//issue[@id=6]") 

1 个答案:

答案 0 :(得分:2)

您可以简单地使用以下XPath表达式来使issue元素具有id等于6的子元素:

//issue[id=6]

id是子元素,不是属性,因此您不能使用@id执行此任务。