I have this xml:
<viewNode xsi:type="View:Projection" name="Projection_1">
<endUserTexts label=" "/>
<element name="CITY">
<inlineType primitiveType="CHAR" length="0" precision="0" scale="0"/>
</element>
<element name="ROAD_ID">
<inlineType primitiveType="CHAR" length="0" precision="0" scale="0"/>
</element>
<element name="LEN">
<inlineType primitiveType="CHAR" length="0" precision="0" scale="0"/>
</element>
<element name="CITY2">
<inlineType primitiveType="CHAR" length="0" precision="0" scale="0"/>
</element>
<element name="F">
<inlineType name="INTEGER" primitiveType="INTEGER" length="0" precision="0" scale="0"/>
</element>
<elementFilter elementName="F">
<valueFilter xsi:type="Column:SingleValueFilter" including="true" value="1"/>
</elementFilter>
<input>
<viewNode xsi:type="View:JoinNode">#/0/Join_1</viewNode>
<mapping xsi:type="Type:ElementMapping" targetName="CITY" sourceName="CITY"/>
<mapping xsi:type="Type:ElementMapping" targetName="ROAD_ID" sourceName="ROAD_ID"/>
<mapping xsi:type="Type:ElementMapping" targetName="LEN" sourceName="LEN"/>
<mapping xsi:type="Type:ElementMapping" targetName="CITY2" sourceName="CITY2"/>
<mapping xsi:type="Type:ElementMapping" targetName="F" sourceName="F"/>
</input></viewNode>
and this is my code to retrieve the data:
SELECT
Tab.Col.value('../@name','nvarchar(50)') as ViewNode,
Tab.Col.value('@name','nvarchar(50)') as Name,
Tab.Col.value('(endUserTexts/@label)[1]','nvarchar(50)') as Label,
Tab.Col.value('(inlineType/@primitiveType)[1]','nvarchar(50)') as PrimitveType,
Tab.Col.value('(inlineType/@length)[1]','nvarchar(50)') as Length,
Tab.Col.value('(inlineType/@precision)[1]','nvarchar(50)') as Precision,
Tab.Col.value('(inlineType/@scale)[1]','nvarchar(50)') as Scale
FROM @x.nodes('/viewNode/element') AS Tab(Col)
This way works and retrieves the data for each element, but I would like to also retrieve the data from elementFilter
, and treat it as if it were another element. My question is, there is a way to retrieve all the child nodes of the parent node viewNode
?
Something like FROM @x.nodes('/viewNode/ANYCHILDNODE') AS Tab(Col)