Here is an example of the XML I'm trying to get some values from:
<ows:Operation name="DescribeFeatureType">
<ows:Parameter name="outputFormat">
<ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
</ows:Parameter>
</ows:Operation>
<ows:Operation name="GetFeature">
<ows:Parameter name="resultType">
<ows:Value>results</ows:Value>
<ows:Value>hits</ows:Value>
</ows:Parameter>
<ows:Parameter name="outputFormat">
<ows:Value>text/xml; subtype=gml/3.1.1</ows:Value>
<ows:Value>GML2</ows:Value>
<ows:Value>GML2-GZIP</ows:Value>
<ows:Value>SHAPE-ZIP</ows:Value>
<ows:Value>csv</ows:Value>
<ows:Value>gml3</ows:Value>
<ows:Value>gml32</ows:Value>
<ows:Value>json</ows:Value>
<ows:Value>text/xml; subtype=gml/2.1.2</ows:Value>
<ows:Value>text/xml; subtype=gml/3.2</ows:Value>
</ows:Parameter>
</ows:Operation>
I want to access the "outputFormat" parameter values for operation "GetFeature" using XMLTABLE in Oracle 10GR2.
I've tried various things but they either gave me no results or all. Here is an example that returns all values.
select t.*
from xmltable(xmlnamespaces(default 'http://www.opengis.net/wfs'
,'http://www.opengis.net/gml' as "gml"
,'http://www.opengis.net/wfs' as "wfs"
,'http://www.opengis.net/ows' as "ows"
,'http://www.w3.org/1999/xlink' as "xlink"
,'http://www.w3.org/2001/XMLSchema-instance' as "xsi"
,'http://www.opengis.net/ogc' as "ogc")
,'for $d in //ows:Operation/ows:Parameter/ows:Value
where //ows:Operation/@name = "GetFeature"
and //ows:Parameter/@name="outputFormat"
return $d' passing p_xml columns value varchar2(100) path '/') as t
Any help is much appreciated.
Found an answer:
using .. xpath expression to access the parent nodes.