Getting element names using XPath/XQuery
Asked Answered
D

2

10

having the following XML sample document, I need to issue an XPath/XQuery expression to get the element names for every children of a CD element.

<CD>
  <TITLE>Empire Burlesque</TITLE>
  <ARTIST>Bob Dylan</ARTIST>
  <COUNTRY>USA</COUNTRY>
  <COMPANY>Columbia</COMPANY>
  <PRICE>10.90</PRICE>
  <YEAR>1985</YEAR>
</CD>

So I need the query to return TITLE, ARTIST, COUNTRY, COUNTRY, PRICE, YEAR , any one can help please? thanks

Dupree answered 20/6, 2012 at 13:48 Comment(1)
Your terminology doesn't match your sample. <TITLE>, etc are child elements of <CD>, not attributes.Kigali
A
19
/CD/*/name()

(padded out because StackOverflow doesn't like short answers)

Am answered 20/6, 2012 at 15:9 Comment(4)
what if we wanted to return CD? just name()? ./name() returns blank...trying to get the root node's nameWade
name(/*) - the outermost element is not the "root node" in the XPath data model; it has a parent which is called the root node in XPath 1.0, or the document node in XPath 2.0.Am
javax.xml.transform.TransformerException: Unknown nodetype: name .. it is not working ..Briant
The expression requires XPath 2.0+ or XQuery 1.0+, it won't work in XPath 1.0.Am
R
-1

Try /\*/name()
e.g. for Oracle use

XMLCast(XMLQuery('/*/name()' PASSING db_some_field_name RETURNING CONTENT) AS VARCHAR2(4000))
Ritter answered 14/4, 2016 at 17:29 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.