Solved

Get the value out of an XML Node using xpath

Posted on 2008-06-24
9
1,469 Views
Last Modified: 2008-06-25
I was not exactly sure how to word the question but here is what i want.

I have a statement to get a value from a node of an XML

SELECT @NodeID =  nullif(t.c.query('NodeID').value('.','int'), 0)
from @x.nodes('/Nodes/NodeLevel-1') t(c)

but in the from clause  instead of  '/Nodes/NodeLevel-1' I would like to have a variable named @NodePath where

set @Nodepath = 'Nodes/NodeLevel-' + Cast(@Level as varchar)

is this possible. if yes, how?

I have already tried

SELECT @NodeID =  nullif(t.c.query('NodeID').value('.','int'), 0)
from @x.nodes(@Nodepath) t(c) ------- does not work
also

SELECT @NodeID =  nullif(t.c.query('NodeID').value('.','int'), 0)
from @x.nodes'Nodes/NodeLevel-' + Cast(@Level as varchar)) t(c) ------- does not work
0
Comment
Question by:pratikshahse
  • 5
  • 4
9 Comments
 
LVL 60

Expert Comment

by:chapmandew
ID: 21859752
Post a sample of your XML data and what you want the output from the query to be...
0
 

Author Comment

by:pratikshahse
ID: 21859779
<NodeLevel-1>
      <NodeID>1</NodeID>
      <ParentNodeID>1</ParentNodeID>
      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
      <Nodes>
        <NodeLevel-2>
          <NodeID>4</NodeID>
          <ParentNodeID>1</ParentNodeID>
          <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
          <Nodes>
            <NodeLevel-3>
              <NodeID>16</NodeID>
              <ParentNodeID>4</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <NodeResult>
                <NodeResult>
                  <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Value>
                    <value>5.74</value>
                  </Value>
                  <Attribute>
                    <AttributeID>34</AttributeID>
                  </Attribute>
                </NodeResult>
              </NodeResult>
              <Clause>
                <ClauseID>224</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>N</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
            <NodeLevel-3>
              <NodeID>17</NodeID>
              <ParentNodeID>4</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <Nodes>
                <NodeLevel-4>
                  <NodeID>35</NodeID>
                  <ParentNodeID>17</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>49</NodeID>
                      <ParentNodeID>35</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>5.74</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>257</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>&lt;=</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2006</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>50</NodeID>
                      <ParentNodeID>35</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>5.74</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>258</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>243</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>TRUE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
                <NodeLevel-4>
                  <NodeID>36</NodeID>
                  <ParentNodeID>17</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>51</NodeID>
                      <ParentNodeID>36</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.74</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>259</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>&lt;=</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2003</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>52</NodeID>
                      <ParentNodeID>36</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.49</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>260</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2004</value>
                          </Value>
                          <Value>
                            <value>2005</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>53</NodeID>
                      <ParentNodeID>36</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.24</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>261</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>=</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2006</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>54</NodeID>
                      <ParentNodeID>36</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>5.99</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>262</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>244</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>FALSE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
              </Nodes>
              <Clause>
                <ClauseID>225</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>U</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
          </Nodes>
          <Clause>
            <ClauseID>212</ClauseID>
            <ClauseGroupID>0</ClauseGroupID>
            <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
            <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
            <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
            <Description>
            </Description>
            <Operation>
              <Code>&lt;=</Code>
            </Operation>
            <Attribute>
              <AttributeID>25</AttributeID>
            </Attribute>
            <Values>
              <Value>
                <value>60</value>
              </Value>
            </Values>
          </Clause>
        </NodeLevel-2>
        <NodeLevel-2>
          <NodeID>5</NodeID>
          <ParentNodeID>1</ParentNodeID>
          <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
          <Nodes>
            <NodeLevel-3>
              <NodeID>18</NodeID>
              <ParentNodeID>5</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <NodeResult>
                <NodeResult>
                  <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Value>
                    <value>5.74</value>
                  </Value>
                  <Attribute>
                    <AttributeID>34</AttributeID>
                  </Attribute>
                </NodeResult>
              </NodeResult>
              <Clause>
                <ClauseID>226</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>N</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
            <NodeLevel-3>
              <NodeID>19</NodeID>
              <ParentNodeID>5</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <Nodes>
                <NodeLevel-4>
                  <NodeID>37</NodeID>
                  <ParentNodeID>19</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>55</NodeID>
                      <ParentNodeID>37</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>5.74</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>263</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>245</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>TRUE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
                <NodeLevel-4>
                  <NodeID>38</NodeID>
                  <ParentNodeID>19</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>56</NodeID>
                      <ParentNodeID>38</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.49</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>264</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2004</value>
                          </Value>
                          <Value>
                            <value>2005</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>57</NodeID>
                      <ParentNodeID>38</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.24</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>265</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>=</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2006</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>58</NodeID>
                      <ParentNodeID>38</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>5.99</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>266</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>246</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>FALSE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
              </Nodes>
              <Clause>
                <ClauseID>227</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>U</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
          </Nodes>
          <Clause>
            <ClauseID>213</ClauseID>
            <ClauseGroupID>0</ClauseGroupID>
            <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
            <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
            <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
            <Description>
            </Description>
            <Operation>
              <Code>BET</Code>
            </Operation>
            <Attribute>
              <AttributeID>25</AttributeID>
            </Attribute>
            <Values>
              <Value>
                <value>61</value>
              </Value>
              <Value>
                <value>66</value>
              </Value>
            </Values>
          </Clause>
        </NodeLevel-2>
        <NodeLevel-2>
          <NodeID>6</NodeID>
          <ParentNodeID>1</ParentNodeID>
          <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
          <Nodes>
            <NodeLevel-3>
              <NodeID>20</NodeID>
              <ParentNodeID>6</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <NodeResult>
                <NodeResult>
                  <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Value>
                    <value>6.74</value>
                  </Value>
                  <Attribute>
                    <AttributeID>34</AttributeID>
                  </Attribute>
                </NodeResult>
              </NodeResult>
              <Clause>
                <ClauseID>228</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>N</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
            <NodeLevel-3>
              <NodeID>21</NodeID>
              <ParentNodeID>6</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <Nodes>
                <NodeLevel-4>
                  <NodeID>39</NodeID>
                  <ParentNodeID>21</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>59</NodeID>
                      <ParentNodeID>39</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.74</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>267</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>247</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>TRUE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
                <NodeLevel-4>
                  <NodeID>40</NodeID>
                  <ParentNodeID>21</ParentNodeID>
                  <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Nodes>
                    <NodeLevel-5>
                      <NodeID>60</NodeID>
                      <ParentNodeID>40</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>7.49</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>268</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2004</value>
                          </Value>
                          <Value>
                            <value>2005</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>61</NodeID>
                      <ParentNodeID>40</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>7.24</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>269</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>=</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2006</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                    <NodeLevel-5>
                      <NodeID>62</NodeID>
                      <ParentNodeID>40</ParentNodeID>
                      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
                      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                      <NodeResult>
                        <NodeResult>
                          <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                          <Value>
                            <value>6.99</value>
                          </Value>
                          <Attribute>
                            <AttributeID>34</AttributeID>
                          </Attribute>
                        </NodeResult>
                      </NodeResult>
                      <Clause>
                        <ClauseID>270</ClauseID>
                        <ClauseGroupID>0</ClauseGroupID>
                        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                        <Description>
                        </Description>
                        <Operation>
                          <Code>BET</Code>
                        </Operation>
                        <Attribute>
                          <AttributeID>18</AttributeID>
                        </Attribute>
                        <Values>
                          <Value>
                            <value>2007</value>
                          </Value>
                          <Value>
                            <value>2008</value>
                          </Value>
                        </Values>
                      </Clause>
                    </NodeLevel-5>
                  </Nodes>
                  <Clause>
                    <ClauseID>248</ClauseID>
                    <ClauseGroupID>0</ClauseGroupID>
                    <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                    <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                    <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                    <Description>
                    </Description>
                    <Operation>
                      <Code>=</Code>
                    </Operation>
                    <Attribute>
                      <AttributeID>11</AttributeID>
                    </Attribute>
                    <Values>
                      <Value>
                        <value>FALSE</value>
                      </Value>
                    </Values>
                  </Clause>
                </NodeLevel-4>
              </Nodes>
              <Clause>
                <ClauseID>229</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>U</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
          </Nodes>
          <Clause>
            <ClauseID>214</ClauseID>
            <ClauseGroupID>0</ClauseGroupID>
            <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
            <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
            <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
            <Description>
            </Description>
            <Operation>
              <Code>BET</Code>
            </Operation>
            <Attribute>
              <AttributeID>25</AttributeID>
            </Attribute>
            <Values>
              <Value>
                <value>67</value>
              </Value>
              <Value>
                <value>72</value>
              </Value>
            </Values>
          </Clause>
        </NodeLevel-2>
        <NodeLevel-2>
          <NodeID>7</NodeID>
          <ParentNodeID>1</ParentNodeID>
          <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
          <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
          <Nodes>
            <NodeLevel-3>
              <NodeID>22</NodeID>
              <ParentNodeID>7</ParentNodeID>
              <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
              <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
              <NodeResult>
                <NodeResult>
                  <EffectiveDate>5/20/2008 12:00:00 AM</EffectiveDate>
                  <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>
                  <Value>
                    <value>8.74</value>
                  </Value>
                  <Attribute>
                    <AttributeID>34</AttributeID>
                  </Attribute>
                </NodeResult>
              </NodeResult>
              <Clause>
                <ClauseID>230</ClauseID>
                <ClauseGroupID>0</ClauseGroupID>
                <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
                <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
                <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
                <Description>
                </Description>
                <Operation>
                  <Code>=</Code>
                </Operation>
                <Attribute>
                  <AttributeID>19</AttributeID>
                </Attribute>
                <Values>
                  <Value>
                    <value>N</value>
                  </Value>
                </Values>
              </Clause>
            </NodeLevel-3>
          </Nodes>
          <Clause>
            <ClauseID>215</ClauseID>
            <ClauseGroupID>0</ClauseGroupID>
            <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
            <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
            <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
            <Description>
            </Description>
            <Operation>
              <Code>BET</Code>
            </Operation>
            <Attribute>
              <AttributeID>25</AttributeID>
            </Attribute>
            <Values>
              <Value>
                <value>73</value>
              </Value>
              <Value>
                <value>84</value>
              </Value>
            </Values>
          </Clause>
        </NodeLevel-2>
      </Nodes>
      <Clause>
        <ClauseID>209</ClauseID>
        <ClauseGroupID>0</ClauseGroupID>
        <EffectiveDate>1/25/2008 12:00:00 AM</EffectiveDate>
        <ExpirationDate>12/25/2008 12:00:00 AM</ExpirationDate>
        <DeActivateDate>1/1/1900 12:00:00 AM</DeActivateDate>
        <Description>
        </Description>
        <Operation>
          <Code>=</Code>
        </Operation>
        <Attribute>
          <AttributeID>44</AttributeID>
        </Attribute>
        <Values>
          <Value>
            <value>ELTE</value>
          </Value>
        </Values>
      </Clause>
    </NodeLevel-1>
0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21859910
Ahh...you can't use a variable for what you're trying to do.  It **has to be a string literal.  But, the good news is that you can get around it easily enough by doing something like this:

DECLARE @SQLString NVARCHAR(500);
DECLARE @ParmDefinition NVARCHAR(500);
declare @x xml, @y varchar(10), @sql nvarchar(100)
set @x = '<root><base>tim</base></root>'
set  @y = '/root/base'

SET @SQLString =
     N'select t.c.value(''.'',''varchar(10)'')
from @x.nodes(''' + @y + ''') t(c)'


SET @ParmDefinition = N'@x xml';


EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @x = @x;
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:pratikshahse
ID: 21860360
this works fine but just one problem.

How do i get values of each node seperately

I need values of each nodes seperate
<NodeID>1</NodeID>
      <ParentNodeID>1</ParentNodeID>
      <EffectiveDate>1/1/1900 12:00:00 AM</EffectiveDate>
      <ExpirationDate>1/1/1900 12:00:00 AM</ExpirationDate>

i want a seperate value for NodeId, ParentNodeID,EffectiveDate and ExpirationDate.

instead I get a one column with all the values in it.
111/1/1900 12:00:00 AM1/1/1900 12:00:00 AM411/1/19.......

here is what i am doing

set @Level = 1
      
select @NodesXML
SET @x = CAST(@NodesXML as XML)
SET @NodePath = '/NodeLevel-' + Cast(@Level as varchar)

EXEC sp_xml_preparedocument @docHandle OUTPUT, @x


SELECT @SQLString =    N'select t.c.value(''.'',''varchar(50)'')
from @x.nodes(''' + @NodePath + ''') t(c)'
SET @ParmDefinition = N'@x xml';


EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @x = @x;
0
 

Author Comment

by:pratikshahse
ID: 21860425
never mind. i think i got it.
0
 

Author Comment

by:pratikshahse
ID: 21860509
ok i think i did not get it. i am able to get the individual values out but how do i put that value in a variable so that i can use that for inserting in a table. after running your example i get the output 'tim'. how can i put that value in a variable @name.

0
 
LVL 60

Expert Comment

by:chapmandew
ID: 21860607
So, just so I am clear...you want to know how to assign the value 'tim' to a variable, right?
0
 

Author Comment

by:pratikshahse
ID: 21860627
yes
0
 
LVL 60

Accepted Solution

by:
chapmandew earned 500 total points
ID: 21860723
OK, try this:

DECLARE @SQLString NVARCHAR(500);
DECLARE @ParmDefinition NVARCHAR(500);
declare @x xml, @y varchar(10), @sql nvarchar(100), @newval varchar(10)
set @x = '<root><base>tim</base></root>'
set  @y = '/root/base'

SET @SQLString =
     N'select @val = t.c.value(''.'',''varchar(10)'')
from @x.nodes(''' + @y + ''') t(c)'


SET @ParmDefinition = N'@x xml, @val varchar(10) output';


EXECUTE sp_executesql @SQLString, @ParmDefinition,
                      @x = @x, @val = @newval output;

select @newval
0

Featured Post

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
Two tables - Sum of values - What is the difference 31 55
configure service broker on all databases 2 92
Help  needed 3 43
Query group by data in SQL Server - cursor? 3 64
If you having speed problem in loading SQL Server Management Studio, try to uncheck these options in your internet browser (IE -> Internet Options / Advanced / Security):    . Check for publisher's certificate revocation    . Check for server ce…
by Mark Wills Attending one of Rob Farley's seminars the other day, I heard the phrase "The Accidental DBA" and fell in love with it. It got me thinking about the plight of the newcomer to SQL Server...  So if you are the accidental DBA, or, simp…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question