minor JAXP annoyance

P

paulmlieberman

I've got an XSLT stylesheet which I've written and maintained for over
2 years now. I've always simply processed it with java
org.apache.xalan.xslt.Process, but now I'm trying to speed things up,
by compiling the stylesheet once, and processing hundreds of XML docs
with it. The output is HTML.

This is Java 1.4.1 on a Sparc9.

The relevant code:
in main():
TransformerFactory tFactory = TransformerFactory.newInstance();
translet = tFactory.newTemplates(new StreamSource(xslInURI));

and then, in a method:

Transformer transformer = translet.newTransformer();
transformer.setParameter("baseurl", baseurlParam);
transformer.setParameter("directory", dirParam);
transformer.setParameter("imageurl", imageParam);
transformer.transform(new StreamSource(xmlInURI),
new StreamResult(new
FileOutputStream(htmlOutURI)));

The problem is, unlike when using Process, the following bit of XSLT
inserts a newline between the </img> and the </a>, which causes the
HTML to display an undesirable underscore after cite.gif (which is a
small paragraph symbol the user is expected to click to invoke the
javascript).

In the source for this stylesheet, all the text within the <xsl:if> is
on a single line of nearly 700 characters.


<xsl:if test="@seqNum">
<a><xsl:attribute
name="href">javascript:showCitation(&apos;<xsl:value-of
select="$citableAuthors"/>&apos;,&apos;<xsl:value-of
select="$citableTitle"/>&apos;,&apos;<xsl:value-of
select="$journalName"/>&apos;,&apos;<xsl:value-of
select="$volume"/>&apos;,&apos;<xsl:value-of
select="$pages"/>&apos;,&apos;<xsl:value-of
select="$citableSectionTitle"/>&apos;,&apos;<xsl:value-of
select="@seqNum"/>&apos;)</xsl:attribute><img border="0"><xsl:attribute
name="src">/images/cite.gif</xsl:attribute><xsl:attribute
name="alt"><xsl:value-of select="$citableAuthors"/> S-<xsl:value-of
select="ancestor::*/@sectNum"/> #<xsl:value-of
select="@seqNum"/></xsl:attribute></img></a>
</xsl:if>

- Paul M Lieberman
American Psychological Association
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,243
Members
46,836
Latest member
login dogas

Latest Threads

Top