xpath - Querying XML-fragment in SQL Server regardless of Xml tree depth -


I have some XML SQL server (column type type xml) which looks something like this

  & lt; TreeRoot & gt; & Lt; Node id = "12" name = "name 2" & gt; & Lt; Node id = "54" name = "name 4654" & gt; & Lt; Node id = "75" name = "name 0 9 43"> node id = "58" name = "dfd2" & gt; & lt; / node & gt; & lt; / node & gt; & lt; lt; node id = "43" name = "543d32" gt; & lt; / node & gt; & lt; / node & gt; & lt; / node & gt; & lt; / TreeRoot & gt;   

I am trying to design a query on this XML which will give me a list of all node ID and node names, such as:

  name ID ----------- Name 2 12 Name 4654 54 Name 9 43 57 DFD 2 58 543 D 32 43   

I already have a query - But it is hard on specific levels of the tree, This means that I need to update this query because I add nodes in the XML piece.

Is there a way to create an XPath query that will give me this list - and in the future, additional levels

Thank you,

: -)

/ Jasper Copenhagen, Denmark

< div class = "post-text" itemprop = "text">

How about:

  Enter DECLARE @XmlTable TABLE (ID INT is not, XmlData XML) @xmlTable (ID, XmlData) in Value (1, '&' LT; TreeRoot & gt; & Lt; Node id = "12" name = "name 2" & gt; & Lt; Node id = "54" name = "name 4654" & gt; & Lt; Node id = "75" name = "name 0 9 43" & gt; & Lt; Node id = "58" name = "dfd2" & gt; & Lt; / Node & gt; & Lt; / Node & gt; & Lt; Node id = "43" name = "543 d 32" & gt; & Lt; / Node & gt; & Lt; / Node & gt; & Lt; / Node & gt; & Lt; / TreeRoot & gt; ') SELECT NodeName = XC.value (' @ name ',' varchar (50) '), nodeid = xc.value (' @ id ',' int ') @xmlTable CROSS APPLY XmlData.nodes (' // node ') XT (XC)   

gives me the output you're looking for.

In fact, .nodes () XML will return a "virtual" table of pieces that corresponds to the xpath expression in the call - and // node all & lt; Node & gt; will select elements - regardless of where they live in the XML tree. Not sure that this is going to be super fast on big XML structures - but this should work.

Comments

Popular posts from this blog

Java - Error: no suitable method found for add(int, java.lang.String) -

java - JPA TypedQuery: Parameter value element did not match expected type -

c++ - static template member variable has internal linkage but is not defined -