Solved

Get the value out of an XML Node using xpath

Posted on 2008-06-24
9
1,440 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
 

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
Zoho SalesIQ

Hassle-free live chat software re-imagined for business growth. 2 users, always free.

 

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

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

INTRODUCTION: While tying your database objects into builds and your enterprise source control system takes a third-party product (like Visual Studio Database Edition or Red-Gate's SQL Source Control), you can achieve some protection using a sing…
In SQL Server, when rows are selected from a table, does it retrieve data in the order in which it is inserted?  Many believe this is the case. Let us try to examine for ourselves with an example. To get started, use the following script, wh…
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

762 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

Need Help in Real-Time?

Connect with top rated Experts

24 Experts available now in Live!

Get 1:1 Help Now