This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Trouble writing .xsl



--- "Sullivan, Dan" <dsullivan@develop.com> wrote:
> You need to make use of an identity transform like
> this:
> 
> 
> <xsl:stylesheet
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> version="1.0"
> xmlns:ABC="org.jason">
> 
> <!-- identity transform, for everything you don't
> care about changing
> -->
> <xsl:template match="@*|node()">
>     <xsl:copy>
>         <xsl:apply-templates select="@*|node()"/>
>     </xsl:copy>
> </xsl:template>
> 
> <!-- transform for jason, the only element you care
> about changing -->
> <xsl:template match="ABC:jason.Smith">
> <ABC:Smith>
> <!-- process children, atrs, if any -->
>     <xsl:apply-templates select="@*|node()"/>
> </ABC:Smith>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> 
> Also your source file had a typo in it (XMI
> Content).
> 
> Dan
> 
> -----Original Message-----
> From: Jason Rizer [mailto:jasonriz@yahoo.com]
> Sent: Saturday, January 12, 2002 8:54 PM
> To: XSL-List@lists.mulberrytech.com
> Subject: [xsl] Trouble writing .xsl
> 
> 
> Hello,
> 
> I've just recently begun using xslt and I'm kind of
> stuck on something pretty simple. I've worked
> through
> parts of a couple of tutorials but I still can't
> seem
> to handle this problem. I'd like to convert (for
> example) the following chunk of xml:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <XMI xmlns:ABC="org.jason">
> <XMI.content>
> <ABC:jason.Smith>
> <LL/>
> </ABC:jason.Smith>
> <Smith/>
> <XMI content>
> </XMI>
> 
> to this chunk:
> 
> <?xml version="1.0" encoding="UTF-8" ?>
> <XMI xmlns:ABC="org.jason">
> <XMI.content>
> <ABC:Smith>
> <LL/>
> </ABC:Smith>
> <Smith/>
> <XMI content>
> </XMI>
> 
> In other words I want to replace each elament named
> jason.Smith with an identical element (ie not affect
> any of it's children or it's attributes) named Smith
> but only when It occurs in the Namespace ABC. I want
> all other elements in the output file to remain
> unchanged. I think I need to use the XPATH
> namespace(
> ) function in my match expression but I can't quite
> seem to get it to work. Any help with creating this
> stylesheet would be greatly appreciated.  Thanks in
> advance!
> 
> -Jason
> 
> ps - What would a style sheet look like which
> created
> an output xml document identical to the source xml
> document? 
> 
> __________________________________________________
> Do You Yahoo!?
> Send FREE video emails in Yahoo! Mail!
> http://promo.yahoo.com/videomail/
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 
> 
>  XSL-List info and archive: 
> http://www.mulberrytech.com/xsl/xsl-list
> 

Dan,

Thanks, this solved my problem (as I stated it)
perfectly.  You're 8 lines of XPATH did what my 50
couldn't :)  I guess there is a bit of a learning
curve.  Still, I have one additional problem.  I
realized that I didn't quite state my problem fully. 
It's not suffiecent that I replace elements named
ABC:jason.Smith with elements named ABC:Smith, I've
also got to repace any elements whose names begin with
ABC:jason.Smith the elements whose names begin with
ABC:Smith while leaving the rest of the element name
unchanged.

For example, I've got to make the following changes
anywhere they occur in the document:

ABC:jason.Smith       ->   ABC:Smith
ABC:jason.Smith.foo   ->   ABC:Smith.foo

I've been playing with the starts-with( ) and
substring-after( ) functions but I can't get it to
work.  If there is an easy solution you could share
with me it would be greatly appreciated.  Thanks in
advance.

-Jason

__________________________________________________
Do You Yahoo!?
Send FREE video emails in Yahoo! Mail!
http://promo.yahoo.com/videomail/

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]