[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] XPath statement for traversing a nested node structure


Subject: Re: [xsl] XPath statement for traversing a nested node structure
From: scott gabelhart <swgabel@xxxxxxxxxxxx>
Date: Wed, 04 Feb 2004 16:52:43 -0500

Kenny Akridge wrote:

If you are looking for a simple count of each object within a node(not a
sum of objects that includes the table subnode), then both of these will
work:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
	<xsl:for-each select="//TABLE">
		<xsl:value-of select="concat(count(DPROW/OBJECT),
'&#160;')"/>
	</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
	<xsl:apply-templates select="//TABLE"/>
</xsl:template>

<xsl:template match="TABLE">
	<xsl:apply-templates select="DPROW"/>
</xsl:template>

<xsl:template match="DPROW">
	<xsl:value-of select="concat(count(OBJECT), '&#160;')"/>
</xsl:template>
</xsl:stylesheet>

However, if you need the sum then you will need to use some
recurision(off hand this is what I am thinking).

I think your problem with DPROW/OBJECT is that you are getting a count
based on the first table context.

-----Original Message-----
From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of scott
gabelhart
Sent: Wednesday, February 04, 2004 2:40 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: [xsl] XPath statement for traversing a nested node structure

I need some assistance with traversing a nested xml input file
structure.

I need to determine between the begining of one nested structure and another the number of occurances of a particular element.

Example:

<TABLE><DPROW><OBJECT></OBJECT></DPROW></TABLE> would yield an occurance

of one OBJECT element using the XPath statement DPROW/OBJECT.

The above XPath statement falls apart though when I introduce nested structures.

<TABLE><DPROW><OBJECT></OBJECT><TABLE><DPROW><OBJECT></OBJECT><OBJECT></
OBJECT></DPROW></TABLE></DPROW></TABLE>
Inner most TABLE element has two OBJECT elements and the outer TABLE element would yield one OBJECT element.


What is a valid XPath statement need for traversing the nested xml structure above?

Any help would be greatly appreciated.

- Scott

XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list


XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list





Kenny,

I will try your suggestion above. I am having problems with XPath based upon my nested xml file structure.

Is there a XPath expression that while I am traversing my nested xml input file I can determine how many OBJECT elements exist between each <TABLE> </TABLE> structure or <DPROW></DPROW>. With the nesting structure of my xml input file I can have tables nested within dprows and objects within each of those dprows.

- Scott



XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords