select
sys_xmlagg(
value(tab), -- expression
xmlformat('Foo')
)
from
table (
xmlsequence(
extract(
XMLType(
'<things>
<item><name>spoon</name><price> 4.89</price></item>
<item><name>table</name><price>899.00</price></item>
<item><name>chair</name><price>279.00</price></item>
</things>
'
),'/things/item'
)
)
) tab
where
extractvalue(value(tab),'/item/price') < 500;
SYS_XMLAGG(VALUE(TAB),--EXPRESSIONXMLFORMAT('FOO'))
---------------------------------------------------------------
<?xml version="1.0"?>
<Foo>
<item>
<name>spoon</name>
<price> 4.89</price>
</item>
<item>
<name>chair</name>
<price>279.00</price>
</item>
</Foo>