Subject: Re: [xsl] Re: Wrapping problem From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx> Date: Tue, 15 Aug 2006 14:00:57 +0530 |
Hi Kent, Following is a XSLT 1.0 solution to the problem:
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/play"> <play> <xsl:apply-templates select="scene" /> </play> </xsl:template>
<xsl:template match="scene"> <scene name="{.}"> <xsl:apply-templates select="following-sibling::character"> <xsl:with-param name="gen-id" select="generate-id()" /> </xsl:apply-templates> </scene> </xsl:template>
<xsl:template match="character"> <xsl:param name="gen-id" />
<xsl:if test="$gen-id = generate-id(preceding-sibling::scene[1])"> <character name="{.}"> <xsl:apply-templates select="following-sibling::line"> <xsl:with-param name="gen-id" select="generate-id()" /> </xsl:apply-templates> </character> </xsl:if> </xsl:template>
<xsl:template match="line"> <xsl:param name="gen-id" />
<xsl:if test="$gen-id = generate-id(preceding-sibling::character[1])"> <xsl:copy-of select="." /> </xsl:if> </xsl:template>
<play> <scene>Scene 1</scene> <character>char 1</character> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> <character>char 2</character> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> <character>char 3</character> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> <scene>Scene 2</scene> <character>char 1</character> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </play>
<?xml version="1.0" encoding="UTF-8"?> <play> <scene name="Scene 1"> <character name="char 1"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> <character name="char 2"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> <character name="char 3"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> </scene> <scene name="Scene 2"> <character name="char 1"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> </scene> </play>
My apologies. for not making that clear. The following is my input. I want to wrap a script from a play in a file "movie1.xml": >> <play> >> <scene>Scene 1</scene> >> <character>char 1</character> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <character>char 2</character> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <character>char 3</character> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <scene>Scene 2</scene>... >> <character>char 1</character> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> <line>blah blah blah</line> >> ... >> </play> The output I want to look like so: <play> <scene name="Scene 1"> <character name="char 1"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> <character name="char 2"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> <character name="char 3"> <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> </scene> <scene name="Scene 2"> <character> name="char 1" <line>blah blah blah</line> <line>blah blah blah</line> <line>blah blah blah</line> </character> ...</scene> </play>
>> My question: How do I wrap the scenes and characters. So far >> my strained brain can only think of creating a text file and >> using "<scene>" or "<character>" to place the end >> element then renaming the text file to xml. >> thanks Kent
-- Regards, Mukul Gandhi
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Re: Wrapping problem, Michael Kay | Thread | RE: [xsl] Re: Wrapping problem, Michael Kay |
Re: [xsl] converting empty nodes to, KrasiG | Date | RE: [xsl] Re: Wrapping problem, Michael Kay |
Month |