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 17:30:14 -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 running your second xsl example gets me closer; but still run into error after the third nested table structure.

Here is the output 1Â 2Â 15Â 14Â 10Â 6Â 13Â 14Â 4Â 16Â 1Â 1Â 1Â 1Â 1Â 1Â 1Â 1Â 12Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â 9Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â 10Â


Based upon my xml structure the 14^A should only be returning 3 ^A.


Also can you include a recursive example. I have never used recursion in my transforms before.

Thanks in advance.

- Scott


- Scott


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


Current Thread