Obtaining Particular Types of Nodes By Using Node Tests

The node tests allow you to obtain nodes according to their type. Node test is an XPath term. Although a node test looks like a function, it is not a function.

You can use node tests with filters and position specifiers. They resolve to the set of children of the context node that meets the restrictions you specify.

Node tests for XPath 2.0 add to the set of node tests supported for XPath 1.0. Node tests common to both XPath 1.0 and XPath 2.0 are shown in Table 88. Node tests unique to XPath 2.0 are shown in Table 88.

Node Test
Node Type Returned
comment()
               

            
Comment nodes.
node()
               

            
All nonattribute nodes.
processing-
instruction("name") 
               

            
Processing instruction nodes. The processing-instruction() node test selects all processing instructions. When this node test specifies a literal argument, it selects any processing instruction that has a name equal to the value of the argument. If there is no argument, this node test selects all processing instructions.
text()
               

            
Text nodes and CDATA nodes.
Table 88. Node Test Return Values Common to XPath 1.0 and XPath 2.0

Node Test
Node Type Returned
attribute()
               

            
Matches any attribute node.
document-node()
               

            
Matches any document node.
element()
               

            
Matches any element node.
item()
               

            
Matches any single item.
Table 89. Node Test Return Values Unique to XPath 2.0

For each p element in the current context, the following query returns its second text child node:

p/text()[2] 
               

            

Following is a query that finds the third comment child in each foo element anywhere in the document:

//foo/comment()[3]
               

            

About the Document Object

In the Document Object Model (DOM), a document contains comments, processing instructions, and declarations, as well as the document element. As in XPath, the root node is the root of the DOM tree, and the root node is not the same as the document element. This allows comments, declarations, and processing instructions at the document entity level.

For example, the following query finds all comments at the document entity level. In other words, it finds all comments that are immediate children of the root node.

/comment() 
               

            

This query returns the comment at the beginning of the bookstore.xml file:

"This file represents a fragment of a book store inventory database."

Getting Nodes of a Particular Type

A query like the following returns all the comments in a document:

//comment()
               

            

The following query returns the third comment in the document.

(//comment()) [3] 
               

            

XQuery Documentation Generator

Stylus Studio provides integrated support for xqDoc so you can generate XQuery documentation directly from the XQuery editor.

Translating X12 Documents to XML

The X12 to XML Converter is a built-in function of the adapter library. The XML that is generated is well commented and indented, and can be used anywhere XML is normally used — with XML Schemas, XSLT, XQuery, etc.

WYSIWYG XSLT Designer

Stylus Studio's powerful and easy-to-use WYSIWYG ("What you see is what you get") XSLT Designer lets you create XSLT stylesheets without writing any code! Go from a blank slate to solid, robust XSLT in minutes, using simple drag-and-drop operations.

Using XSLT Templates

Using XSLT Templates is an online video demonstration of the Stylus Studio XSLT designer. See just how easy it is to create, apply and match XSLT templates to your XML data to create beautiful HTML layouts for XML content publishing applications.

Stylus Most Wanted

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.