提升:如何按属性和值选择NodeSeq中的节点?

时间:2012-05-29 21:41:40

标签: scala select attributes lift nodes

我有一个NodeSeq对象,想要选择一个标有属性的给定节点。例如,假设NodeSeq中有一个标记<div id="content">...</div>

我尝试使用NodeSeq上的方法\\以及过滤器进行选择。

假设 seq 是我的NodeSeq对象。

seq \\ "div"有效,但会选择所有<div>元素。

seq.filter(_.attribute("id").equals("content"))根本不选择任何节点,结果列表为空。

如何选择此节点?

2 个答案:

答案 0 :(得分:2)

尝试

scala> var x= <b>
 | <h id="bla"/>
 | <h id="blub"/>
 | </b>

x \\ "h" filter (h=>(h \ "@id" toString) == "bla")

这应该有用。

答案 1 :(得分:0)

或者,您可以尝试以下方法:

seq.filter(_.attribute("id").exists(_.text.equals("content")))