By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
438,265 Members | 1,333 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 438,265 IT Pros & Developers. It's quick & easy.

Getting all nodes and node details from xml using xquery

P: n/a
Hi,

I haev the following code:

DECLARE @x xml
SET @x='
<Root>
<row id="1"><name>Larry</name><oflw>some text</oflw></row>
<row id="2"><name>Joe</name></row>
<row id="3" />
</Root>
'
exec sp_xml_preparedocument @idoc OUTPUT, @x
SELECT * FROM OPENXML(@idoc, '/Root')

This gives the following details
id
parentid
nodetype localname

prefix

namespaceuri
datatype

prev text

I want to get the same details using XQuery, please let me know how to
go about it.

Regards,
Shilpa

Apr 6 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Shilpa (sh*************@unisys.com) writes:
I haev the following code:

DECLARE @x xml
SET @x='
<Root>
<row id="1"><name>Larry</name><oflw>some text</oflw></row>
<row id="2"><name>Joe</name></row>
<row id="3" />
</Root>
'
exec sp_xml_preparedocument @idoc OUTPUT, @x
SELECT * FROM OPENXML(@idoc, '/Root')
...
I want to get the same details using XQuery, please let me know how to
go about it.


I am not sure that you can to this easily. You use a very special form
of OPENXML, the one without a WITH clause, that gives you an edge table.
I have never found any use for edge tables, but maybe I've overlooked
something.

Since I'm no specialist in XML, I've consulted my MVP colleagues who know
this topic better, so hopefully I will be able to return with a more
definitive answer.
--
Erland Sommarskog, SQL Server MVP, es****@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx
Apr 8 '06 #2

P: n/a
"Shilpa" <sh*************@unisys.com> writes:
I haev the following code:

DECLARE @x xml
SET @x='
<Root>
<row id="1"><name>Larry</name><oflw>some text</oflw></row>
<row id="2"><name>Joe</name></row>
<row id="3" />
</Root>
'
exec sp_xml_preparedocument @idoc OUTPUT, @x
SELECT * FROM OPENXML(@idoc, '/Root')

This gives the following details
id
parentid
nodetype localname

prefix

namespaceuri
datatype

prev text

I inquired about this, and you can only get localname, namespace URI
and the node's value with XQuery. You cannot get the positional node
information or node ids or prefixes.

For an example, look up the newsgroup microsoft.public.sqlserver.xml.
Michael Rys, who is the Program Manager for XML in SQL Server, and
whom I got this information from, says he recently posted an example
to that group.

--
Erland Sommarskog, Stockholm, es****@sommarskog.se

Apr 11 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.