The XTLRuntime object is essentially a Node object which
implements the following additional methods which can be called from within an XSL
stylesheet:
- absoluteChildNumber
- ancestorChildNumber
- childNumber
- depth
- formatDate
- formatIndex
- formatNumber
- formatTime
- uniqueID
To demonstrate how you might use some of these stylesheet-specific methods, this example
uses the the following 'beers' XML document and an XSL stylesheet that calls the
childNumber method:
XML:
<beers>
<beer>
<brewer>Badger</brewer>
<name>Tanglefoot</name>
</beer>
<beer>
<brewer>Wadworths</brewer>
<name>6X</name>
</beer>
<beer>
<brewer>Hop Back Brewery</brewer>
<name>Summer Lightning</name>
</beer>
</beers>
XSL:
<xsl:template match="/">
<xsl:for-each select="beers/beer">
<xsl:eval>childNumber(this)</xsl:eval>
<xsl:value-of select="brewer"/>
<br />
</xsl:for-each>
</xsl:template>
The code loads both of these documents and then calls the
transformNode method to apply the stylesheet to the
XML document. The contents are printed with a document.write statement:
Code (JavaScript):
<script>
xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
xmldoc.load("beers.xml");
xsldoc = new ActiveXObject("Microsoft.XMLDOM");
xsldoc.async = false;
xsldoc.load("beers.xsl");
</script>
<script>
document.write(xmldoc.transformNode(xsldoc));
</script>
It is the stylesheet that ultimately determines how the XML is displayed, and applying the
above stylesheet, only the 'brewer' elements will be printed, with each one being numbered
as a result of calling the childNumber method. The output will appear like this:
Output:
1 Badger
2 Wadworths
3 Hop Back Brewery
denotes a Microsoft extension to the W3C DOM.
PROPERTIES
attributes Property
This is a read-only property that returns an
NamedNodeMap for nodes that can have
attributes.
Syntax: Node.attributes
baseName Property
This is a read-only property that returns the base name for a node.
Syntax: Node.baseName
childNodes Property
This is a read-only property containing a node list of all children for those elements that
can have them.
Syntax: Node.childNodes
dataType Property
This is a read-only property that specifies the data type for the node.
Syntax: Node.dataType
definition Property
This property returns the definition of the node in the DTD or schema.
Syntax: Node.definition
firstChild Property
This is a read-only property that returns the first child node of a node. If there is none,
it returns null.
Syntax: Node.firstChild
lastChild Property
This is a read-only property that returns the last child node of a node. If there is none,
it returns null.
Syntax: Node.lastChild
namespaceURI Property
This property is read-only and returns the URI (Universal Resource Indentifier) of the
namespace.
Syntax: Node.namespaceURI
nextSibling Property
This property returns the next node in the parent's child list, or null if there
is none or the node is of a type that cannot be a child node
(Attr,
Document,
DocumentFragment).
Syntax: Node.nextSibling
nodeName Property
This property is read-only and contains the name of the node, depending on type.
Syntax: Node.nodeName
nodeType Property
This is a read-only property specifying the type of the node.
Syntax: Node.nodeType
nodeTypedValue Property
This property contains the value of this node expressed in its defined data type.
Syntax: Node.nodeTypedValue
nodeTypeString Property
This property is read-only and returns the node type in string form.
Syntax: Node.nodeTypeString
nodeValue Property
This property contains the value of the node, depending on type.
Syntax: Node.nodeValue
ownerDocument Property
This property returns the Document object to which the
node belongs. If the node itself is a document, then it returns null.
Syntax: Node.ownerDocument
parentNode Property
This is a read-only property that returns the parent node of all nodes except
Document,
DocumentFragment and
Attr, which cannot have parent nodes.
Syntax: Node.parentNode
parsed Property
This property returns a boolean value of true if this node and all of its
descendants have been parsed and instantiated. Otherwise it returns false.
Syntax: Node.parsed
prefix Property
This property is read-only and returns the namespace prefix, or an empty string if none
is specified. For example, it would return 'xxx' for the element <xxx:yyy>.
Syntax: Node.prefix
previousSibling Property
This property returns the previous node in the parent's child list, or null if
there is none or the node is of a type that cannot be a child node
(Attr,
Document,
DocumentFragment).
Syntax: Node.previousSibling
specified Property
This property returns a boolean value indicating whether this node (usually an attribute)
is explicitly specified or derived from a default value in the DTD or schema.
Syntax: Node.specified
text Property
This property contains the text content of this node and its subtrees.
Syntax: Node.text
xml Property
This property contains the XML representation of this node and its descendants.
Syntax: Node.xml
METHODS
absoluteChildNumber Method
This method returns the index for this node in its parent's list of child nodes. (Indexing
starts at 1.) Its one parameter is the node for which the number is to be returned.
Syntax: absoluteChildNumber(pNode)
ancestorChildNumber Method
This method returns the number of the nearest ancestor of a node with the specified
node name.
Syntax: ancestorChildNumber(bstrNodeName, pNode)
appendChild Method
This method appends a new child node to the list of children for this node.
Syntax: Node.appendChild(tagName)
childNumber Method
This method returns the index for this node in its parent's list of child nodes. (Indexing
starts at 1.) Its one parameter is the node for which the number is to be returned.
Syntax: childNumber(pNode)
cloneNode Method
This method creates a clone node which is an exact replica of this node.
Syntax: Node.cloneNode(deep)
depth Method
This method returns a long integer indicating the depth within the document tree at which
the specified node appears. The root node, or document element, is numbered 0, its children 1,
and so on.
Syntax: depth(pNode)
formatDate Method
This method formats the supplied date using the specified formatting options.
Syntax: formatDate(varDate, bstrFormat, varDestLocale)
formatIndex Method
This method formats the supplied integer using the specified numerical system.
Syntax: formatIndex(lIndex, bstrFormat)
formatNumber Method
This method formats the supplied number using the specified format.
Syntax: formatNumber(dblNumber, bstrFormat)
formatTime Method
This method formats the supplied time using the specified formatting options.
Syntax: formatTime(varTime, bstrFormat, varDestLocale)
hasChildNodes Method
This method is a convenient way to determine whether a node has child nodes, returning
true if it has, and false if not.
Syntax: Node.hasChildNodes( )
insertBefore Method
This method is used to insert a new child node before an existing one. If no child node
exists, the new child node becomes the first.
Syntax: Node.insertBefore(newChild, refChild)
removeChild Method
This method removes the specified node from the list of children and returns it.
Syntax: Node.removeChild(oldChild)
replaceChild Method
This method is used to replace one of a node's children with another. It returns the old
child.
Syntax: Node.replaceChild(newChild, oldChild)
selectNodes Method
This method creates a NodeList of all the matching
descendant nodes returned by the specified pattern-matching operation.
Syntax: Node.selectNodes(patternString)
selectSingleNode Method
This method returns a Node object for the first descendant
node to match the specified pattern.
Syntax: Node.selectSingleNode(patternString)
transformNode Method
This method processes this node and its descendants using the specified XSL stylesheet,
and returns the resulting transformation.
Syntax: Node.transformNode(stylesheet)
transformNodeToObject Method
This method processes this node and its descendants using the specified XSL stylesheet,
and returns the resulting transformation in the specified object.
Syntax: Node.transformNodeToObject(stylesheet, outputObject)
uniqueID Method
This method returns the unique identifier for the specified node.
Syntax: uniqueID(pNode)
Copyright 1999-2001 by Infinite Software Solutions, Inc. All rights reserved.
Trademark Information
|