XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
siva ramanSubject: pattern match in xslt
Author: siva raman
Date: 07 Jan 2005 08:57 AM
hi

I want to extract consecutive numbers in the text node of a element.
Pls send me the xpath expression.

thanks

Postnext
Ivan PedruzziSubject: pattern match in xslt
Author: Ivan Pedruzzi
Date: 07 Jan 2005 01:29 PM
Siva,

Could you please show us how the text node is fomatted?

Ivan

Postnext
siva ramanSubject: pattern match in xslt
Author: siva raman
Date: 08 Jan 2005 08:37 AM
Ivan,

thanks for ur reply.

Pls find find the possibilitis in the input xml file as:-

<c rid="c1">Benham, Smith, &amp; Nash, 2002</c>
<c rid="c2">Benham, Smith, &amp; Nash 2002</c>
<c rid="c3">Shor and Orne (1962)</c>

My requirement in output xml is as follows:

Benham, Smith, &amp; Nash, <y rid="y1">2002</y>
Benham, Smith, &amp; Nash <y rid="y2">2002</y>
Shor and Orne <y rid="y3">(1962)</y>


thanks
Siva

Postnext
Ivan PedruzziSubject: pattern match in xslt
Author: Ivan Pedruzzi
Date: 10 Jan 2005 05:34 PM
Originally Posted: 10 Jan 2005 05:35 PM
Assuming the input document looks like that

<?xml version="1.0"?>
<root>
<c rid="c1">Benham, Smith, &amp; Nash, 2002</c>
<c rid="c2">Benham, Smith, &amp; Nash 2002</c>
<c rid="c3">Shor and Orne (1962)</c>
</root>


The following xslt should help

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes" method="xml"/>

<xsl:template match="/">
<root>
<xsl:apply-templates select="root/c"/>
</root>
</xsl:template>

<xsl:template match="c">

<xsl:variable name="year_position">
<xsl:call-template name="get_year_position">
<xsl:with-param name="context" select="."/>
</xsl:call-template>
</xsl:variable>

<c>
<xsl:value-of select="substring(., 1, $year_position)"/>
<y>
<xsl:attribute name="rid">
<xsl:value-of select="concat('y',substring(@rid, 2))"/>
</xsl:attribute>
<xsl:value-of select="substring(., $year_position+1)"/>
</y>
</c>
</xsl:template>

<xsl:template name="get_year_position">
<xsl:param name="context"/>
<xsl:param name="pos" select="string-length($context)"/>

<xsl:choose>
<xsl:when test="$pos &gt; 0 and translate(substring(., $pos, 1), '1234567890()', '')=''">
<xsl:call-template name="get_year_position">
<xsl:with-param name="context" select="$context"/>
<xsl:with-param name="pos" select="$pos - 1"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$pos"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>

The result should be something like that

<?xml version='1.0' ?>
<root>
<c>Benham, Smith, &amp; Nash,
<y rid="y1">2002</y>
</c>
<c>Benham, Smith, &amp; Nash
<y rid="y2">2002</y>
</c>
<c>Shor and Orne
<y rid="y3">(1962)</y>
</c>
</root>

Posttop
siva ramanSubject: pattern match in xslt
Author: siva raman
Date: 11 Jan 2005 07:06 AM
Hi


thank u very much




siva

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

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