Home >Online Product Documentation >Table of Contents >Obtaining Namespace Information
Obtaining Namespace Information
You can call functions to obtain namespace information. This topic discusses
In addition to a discussion of the functions you call, this section covers the following:
Obtaining the Namespace URI
To obtain the URI for a namespace, call the namespace-uri()
function. The format is
The namespace-uri()
function returns the namespace URI of the expanded name of the node in the node-set argument that is first in document order. If the node-set argument is empty, the first node has no expanded name, or the namespace URI of the expanded name is null
, the XPath processor returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member.
Call the namespace-uri()
function on element or attribute nodes. For example, the query
returns the string
For any other type of node, the XPath processor always returns an empty string.
Obtaining the Local Name
To obtain the local portion of a node name, excluding the prefix, call the local-name()
function. The format is
The local-name()
function returns the local part of the expanded name of the node in the node-set argument that is first in document order. If the node-set argument is empty or the first node has no expanded name, the function returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member. For example, the following query returns my:book
nodes:
Obtaining the Expanded Name
To obtain the expanded name of a node, call the name()
function. The expanded name is the namespace prefix, if any, plus the local name. The format is
The name()
function returns a string that represents the expanded name of the node in the node-set argument that is first in document order. The returned string represents the expanded name with respect to the namespace declarations in effect on the node whose expanded name is being represented.
Typically, this is the name in the XML source. This need not be the case if there are namespace declarations in effect on the node that associate multiple prefixes with the same namespace.
If the node-set argument is empty or the first node has no expanded name, the XPath processor returns an empty string. If you omit the argument, it defaults to a node set with the context node as its only member.
Except for element and attribute nodes, the string that the name()
function returns is the same as the string the local-name()
function returns.
Specifying Wildcards with Namespaces
Element and attribute names that include colons (:
) can include wildcards; that is, asterisks (*
). For example, queries can include *:*
, *:a
, or a:*
.
Examples of Namespaces in Queries
The following example finds all book
elements in the current context. This query does not return any book
elements that are not in the default namespace. For example, it does not return my:book
elements.
The next query finds all book
elements with the prefix my
. This query does not return unqualified book
elements; that is, book
elements in the default namespace.
The following query finds all book
elements with a my
prefix that have an author
subelement:
The following query finds all book
elements with a my
prefix that have an author
subelement with a my
prefix:
The next example returns the style
attribute with a my
prefix for book
elements in the current context: