2015-12-01 149 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

相關問題