2

XMLサンプル:

<structure-node (n)>
    <node-data (1)>
        <feature-list (n)>
            <feature (n)>
                <value (1)>123</value>
            </feature>
        </feature-list>
    </node-data>
</structure-node>

括弧内の最大出現回数。構造ノードを取得したいのですが、含まれている値が123に等しい場合のみです。

私はこれを試しました(Play!with Scala):

@{ (parentNode \ "structure-node").filter{ f => (f \ "node-data" \ "feature-list" \ "feature" \ "value").text == "123"}  }

しかし、ノード自体に存在しないフィールドをフィルタリングできないようです。フィルタを組み合わせる必要がありますか?試しましたが失敗しました...

何か案が?

4

1 に答える 1

2

関数existsを使用して、SeqNodeの「structure-node」タグの下にある「value」タグの条件を追加できます。

(parentNode \ "structure-node").filter(s => (s \ "node-data" \ "feature-list" \ "feature" \ "value").exists ( t => t.text == "123"))

また

(parentNode \ "structure-node").filter(s => (s \\ "value").exists ( t => t.text == "123"))
于 2012-08-10T16:17:28.313 に答える