2015-12-01 151 views
0

我试过使用“contains”函数,如果nodeSeq包含一个元素,它应该给出一个布尔值,但它不适用于我。如何检查NodeSeq是否包含特定元素

例如: SEQ =

<parent> 
    <child1 /> 
    <child2 /> 
</parent> 

如果我使用seq.contains( “child1”),它给了我假的。我错过了什么吗?

回答

0

NodeSeq似乎包含一个有孩子的节点(你是“父”标签)。此代码似乎工作:

nodeSeq.child.contains(<child1 />) 

或者您可以使用XPath找到孩子

(nodeSeq \\ "child3").nonEmpty == false 
(nodeSeq \\ "child2").nonEmpty == true 
(nodeSeq \\ "parent").nonEmpty == true 
+0

http://alvinalexander.com/scala/scala-xml-searching-xmlns-namespaces-xpath-解析有关xpath支持的更多细节。 –

+0

谢谢@AngeloGenovese。 (nodeSeq \\“child3”)。nonEmpty工作。 – skhaapioloir

+0

@skhaapioloir,你说这个工作,但答案还没有被“接受”。有什么不对? – jwvh

相关问题