select the following node

N

naima.mans

Hello,

i want to select 2 following brothers nodes wich are one under another
(one closed to another)... i have done one xslt file... but it's not
really good..

for example:
the xml file:
-----------------------------------------------------
<loanService>
<tradePart product="L1712"> <!-- NOT this one -->
<positionInfo>
<position partyReference="EXPCFTCL"
code="CommitmentNetAmounts" /> <!-- this one -->

<position partyReference="EXPCFTCL"
code="CommitmentNetAmount" /> <!-- this one -->

</positionInfo>
</tradePart>

<tradePart product="L1712"> <!-- NOT this one -->
<positionInfo>
<positionRate>0.0000</positionRate> <!-- this one -->

<positionRate>20.0000</positionRate> <!-- this one -->
</positionInfo>
</tradePart>
</loanService>
-----------------------------------------------------

the XSLT:
--------------------------------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:diff="http://www.via.ecp.fr/~remi/soft/xml/xmldiff"
xmlns:msg="http://defiml.loanService.V3_40">
<xsl:eek:utput method="text" encoding="ISO-8859-1" />

<xsl:strip-space elements="*" />
<xsl:template match="/">
<xsl:apply-templates select="//*"/>
</xsl:template>

<xsl:template match="//*">

<xsl:variable name="actual" select="."></xsl:variable>
<xsl:variable name="follow"
select="following-sibling::node()[position()=1]"></xsl:variable>

<xsl:if test="local-name($actual) = name($follow)">
<xsl:text> actual </xsl:text> <xsl:value-of
select="local-name($actual)"/>
<xsl:text>/ </xsl:text>
<xsl:text> follow </xsl:text><xsl:value-of select="name($follow)"
/>
<xsl:text> ; </xsl:text>
<xsl:text>
</xsl:text>
</xsl:if>
</xsl:template>

</xsl:stylesheet>

--------------------------------------

the result:
--------------------------------------
actual tradePart/ follow tradePart
;
actual position/ follow position ;
actual positionRate/ follow positionRate ;
--------------------------------------


The problem is that I want this result:
actual position/ follow position
;
actual positionRate/ follow positionRate ;

I just want to select the brother which are just one under another ...

thanks a lot

Tachi
 
J

Joe Kesselman

Since you haven't told us what you're really trying to accomplish
("brother" is not a defined term in XPath and XSLT.), it's hard to say
whether you are overcomplicating the problem or not.

If you really need the same-name-as-first-child-element test, then yes,
it's going to be somewhat ugly. (And in fact you should probably be
checking namespace as well as localname.) If you just need the first two
child elements no matter what their names are, or if you know the names
at the time you're writing the stylesheet, that's a significantly simpler.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,764
Messages
2,569,567
Members
45,041
Latest member
RomeoFarnh

Latest Threads

Top