如何做nokogiri属性选择?

时间:2016-10-18 06:50:11

标签: ruby nokogiri

我的test.xml文件中有很多这样的语句

<House name="bla"><Room id="bla" name="black" ></Room></House>

如何使用name="black"打印所有房间。我正在使用CSS选择器,但选择器仅使用HouseRoom属性。

我开始尝试打印所有名称,无论是房子还是房间。

nodes = doc.css("name")。但它给出了null作为输出。所以我无法继续。

1 个答案:

答案 0 :(得分:1)

在CSS中,您有一种通过属性key-val对匹配元素的语法:

nodes = doc.css("[name='black']")

为了将来参考,您还可以链接属性选择器

nodes = doc.css(".my-class[name='black'][foo='bar']")

或者省略val并匹配属性所在的任何元素:

nodes = doc.css("[name]")