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]

mixed content styling problem


Hi,

I hope someone can assist me with my current situation. I am having
difficulty styling the emphasis tags within #PCDATA of mixed content. I
basically need to be able to apply further templates to a tree fragment
which is not in itself a node. I have no issues with applying templates to
inline information within elements, just where I need to seperate the
#PCDATA information from the element information within a mixed content
model.

I am not in a position to make changes to the content model.

Anyways.

Here is the XML component

<A>
<B TYPE="PUB">The following information should be seen in <E1>italics</E1>
and this is some extra information which occurs after the emphasis tags.
<C><D>Here is some additional information</D></C></B>
<B TYPE="NONPUB">This information is not for publication at this stage</B>
<B TYPE="NONPUBTOO">Neither is this information.</B>
</A>

Here is my attempt to output the following:

The following information can be seen in italics and this is some extra
information which occurs after the emphasis tags. 

<!-- Add italics to appropriate areas of the document  -->

  <xsl:template match="E1">
      <xsl:call-template name="inline.italic"/>
  </xsl:template>

  <xsl:template name="inline.italic">
    <xsl:param name="content">
      <xsl:apply-templates/>
    </xsl:param>
    <I><xsl:copy-of select="$content"/></I>
  </xsl:template>


<!-- Extract and output publish B information -->

 <xsl:template match="A">
    <xsl:call-template name="B.output"/>
  </xsl:template>
 
  <xsl:template name="B.output">
    <xsl:for-each select="B">
      <xsl:if test="string(@TYPE)='PUB'">
        <xsl:variable name="BInfo">
          <xsl:copy-of select="child::node()[following::C]"/>
        </xsl:variable>
        <H2><xsl:copy-of select="$BInfo"/></H2>
        <!-- <H2><xsl:apply-templates select="$BInfo"/></H2> -->
      </xsl:if>
    </xsl:for-each>
  </xsl:template>

Result if initial output line is used:

<H2>The following information can be seen in italics and this is some extra
information which occurs after the emphasis tags.</H2> 

Result if commented output line is used (from Saxon):

Error while applying stylehsheet
At xsl:apply-templates on line 172 of file etc...
Cannot convert value [** RESULT TREE FRAGMENT **] to a node-set

Any help would be appreciated.

cheers,

-Bill


 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]