I want to extract an element as a string from an XML. The method I am using is the following:
declare @xml xml =
'<sl:stand xmlns:sl="http://www.kadaster.nl/schemas/standlevering-generiek/1.0">
<sl-bag-extract:bagObject xmlns:sl-bag-extract="http://www.kadaster.nl/schemas/lvbag/extract-deelbestand-lvc/v20200601">
<Objecten:Pand xmlns:Objecten="www.kadaster.nl/schemas/lvbag/imbag/objecten/v20200601">
<Objecten:geometrie>
<gml:Polygon srsName="urn:ogc:def:crs:EPSG::0"
srsDimension="3"
xmlns:gml="http://www.opengis.net/gml/3.2">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 4 5 6 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
</Objecten:geometrie>
</Objecten:Pand>
</sl-bag-extract:bagObject>
</sl:stand>
'
;WITH XMLNAMESPACES('http://www.kadaster.nl/schemas/standlevering-generiek/1.0' AS sl,
'http://www.kadaster.nl/schemas/lvbag/extract-deelbestand-lvc/v20200601' AS [sl-bag-extract],
'www.kadaster.nl/schemas/lvbag/imbag/objecten/v20200601' AS Objecten,
'www.kadaster.nl/schemas/lvbag/imbag/historie/v20200601' as Historie)
SELECT
Tab.Col.value('(Objecten:geometrie)[1]','varchar(max)') AS geometrie
FROM @xml.nodes('/sl:stand/sl-bag-extract:bagObject/Objecten:Pand') Tab(Col)
The result that I will have from this query is:
1 2 3 4 5 6 1 2
But I expect it to be like this:
<gml:Polygon srsName="urn:ogc:def:crs:EPSG::0"
srsDimension="3"
xmlns:gml="http://www.opengis.net/gml/3.2">
<gml:exterior>
<gml:LinearRing>
<gml:posList>1 2 3 4 5 6 1 2</gml:posList>
</gml:LinearRing>
</gml:exterior>
</gml:Polygon>
How to extract an element as a string from this XML?