Subject: Re: Recognizing non-XML Markup Structure
From: "J. S. Rawat" <jrawat@xxxxxxxxxxxxxx>
Date: Thu, 27 Sep 2007 13:05:09 +0530
|
Jeff thanks for your quick efforts. I am using saxon8 in the dos mode as below
java -jar saxon8.jar a.xml a.xsl >a.htm
and getting "run-time errors were reported."
At 01:31 PM 9/27/2007 +0800, you wrote:
Tested with input:
<?xml version="1.0" encoding="UTF-8"?>
<para>Hoping to satisfy [...] the secrets of ecstatic love, the roots of
personal happiness.</para>
using xsl:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:template match="text()[parent::para]">
<xsl:analyze-string select="." regex="\[(.*?)\]">
<xsl:matching-substring>
<cite><xsl:value-of select="regex-group(1)"/></cite>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</xsl:template>
</xsl:stylesheet>
produced:
<?xml version="1.0" encoding="UTF-8"?>Hoping to satisfy <cite>...</cite>
the secrets of ecstatic love, the roots of personal happiness.
used saxon8 in oxygen....
-- Jeff
J. S. Rawat wrote:
Not working!!!
ERROR: The child axis starting at a text() node will never select anything
At 01:17 PM 9/27/2007 +0800, you wrote:
Hi,
ERROR
XSL:Analyze-string must not appear directly within xsl:stylesheet
analyze-string is not a top-level xslt instruction so it should not be a
child of xsl:stylesheet.
If you want to replace the text node of a para element you can do this...
<xsl:template match="text()[parent::para]">
<!-- your analyze string here -->
<xsl:analyze-string select="." regex="\[(.*?)\]">
<xsl:matching-substring>
<cite>joga<xsl:value-of select="regex-group(1)"/></cite>
</xsl:matching-substring>
<xsl:non-matching-substring>
<xsl:value-of select="."/>
</xsl:non-matching-substring>
</xsl:analyze-string>
</template>
note not tested...
-- Jeff
|