-1

I would like to delete the "node2" nodes that have not child nodes. how can I do that

<node1>
    <node2>
        <node3>4</node3>
    </node2>
    <node2></node2>
    <node2></node2>
</node1>

How can I do that with xquery>

Jens Erat
  • 37,523
  • 16
  • 80
  • 96
vagelis
  • 326
  • 5
  • 18

1 Answers1

1

If you want to modify a database, use XQuery Update:

delete nodes //node2

For inline XML snippets or when you want to modify the result output (and no database on disk), you can use a modify/transform statement:

copy $c :=
  <node1>
    <node2>
      <node3>4</node3>
    </node2>
    <node2></node2>
    <node2></node2>
  </node1>
modify (
  delete nodes $c//node2
)
return $c
Jens Erat
  • 37,523
  • 16
  • 80
  • 96