|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Change text on given node at runtime
Yes, having looked at Jeni's XSL it is way over the top for my needs and
doesn't seem to actually do what I want. Thanks to Jim Fuller for directing
me to it though - I'm sure I'll use it elsewhere :0)
Mukul, the code you supplied is what I tried first of all but it doesn't
copy across attributes.
Here is where I am so far...
Vendor: Apache Software Foundation
URL: http://xml.apache.org/xalan-j
Version: 1
The following works fine but once it hits the node and question, and
processes it OK, it does not continue down into deeper nests below that
node. So I know what I want to do but can't quite crack how to do it. Any
help with this would be gratefully received.
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:param name="tag"/> <!-- name of node containing text to be changed
-->
<xsl:param name="text"/> <!-- new text to be placed in node -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:if test="name()=$tag">
<xsl:apply-templates select="@*"/>
<xsl:value-of select='$text'/>
</xsl:if>
<xsl:if test="not(name()=$tag)">
<xsl:for-each select="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:for-each>
</xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Jeff
-----Original Message-----
From: Mukul Gandhi [mailto:mukulw3@xxxxxxxxx]
Sent: 23 July 2003 17:54
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: Change text on given node at runtime
Hi Jeff ,
You can try a XSL something like below. This will
replace the contents of tag <A> with 'Some new text'
and copy other things to output as it is. But you want
to provide the tag name and the new text, *at run
time*. If you can tell what is your XSLT processor and
*how you would like to supply the 2 parameters at run
time*, i can try modifying the stylesheet accordingly.
i don't know if Jeni's XSL is meeting your
requirement(it looks quite complicated to me for your
problem).
Regards,
Mukul
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0"
encoding="UTF-8" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
<xsl:template match="A">
<A>Some new text</A>
</xsl:template>
</xsl:stylesheet>
--- jeff.day@xxxxxx wrote:
> Hi
>
> Can you please give some guidance on this...
>
> I would like to be able, at runtime, to parse an XML
> file and change
>
> <A>Original text</A>
>
> to
>
> <A>Some new text</A>
>
>
> On the next occasion I might want to do this...
>
> <F>Old text</F>
>
> change to
>
> <F>New text</F>
>
> So at runtime I need to pass in two parameters that
> specify the required
> node and the new text for it.
>
> There are two issues: Either change the text in
> every node called <A>
> throughout the document or else only change <A>
> along a particular path. A
> solution to either (or both?) option will do for me.
>
> Of course the rest of the document must remain in
> its entirety, e.g.
> attributes, children etc.
>
> Many thanks for any help given.
>
> Regards
>
> Jeff
>
>
> XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
>
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








