see this example it may helpfulDECLARE @r XMLSET @r = '<Reference> <Basic> <Book>A1.Hj1.JU9</Book> </Basic> <App> <A>AK9.HL9.J0</A> <A>A18.H.PJ69</A> </App> <Sub> <B>B13.H98.P9</B> <B>B18.HO9.JIU8</B> </Sub> <DI> <D>D23.HYT.P6R</D> </DI></Reference>'--1111111SELECT node.query('fn:local-name(.)') AS NodeName, node.query('./text()') AS NodeValueFROM @r.nodes(N'//*') T(node) SELECT t.n.value('local-name(..)[1]', 'VARCHAR(100)') AS ParentNodeName, t.n.value('local-name(.)[1]', 'VARCHAR(100)') AS NodeName, t.n.value('text()[1]', 'VARCHAR(100)') AS NodeTextFROM @r.nodes('/*/*/*') AS t(n)