first off, i'm a total newbie at this stuff so excuse any wrong usage of
terminology or whatever else.
i have a XSL to transform a Document such that all "text" nodes will
have a "SPAN" inserted around it. the XSL is given below:
<xsl:transfor m version="1.1"
xmlns:xsl="http ://www.w3.org/1999/XSL/Transform">
<xsl:output method="xhtml" omit-xml-declaration="ye s"/>
<xsl:strip-space elements="*"/>
<xsl:template match="text()" priority="2">
<span lx="" ly="" ux="" uy="">
<xsl:copy/>
</span>
</xsl:template>
<xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
</xsl:transform>
so basically, i parse a HTML page into a Document using nekoHTML and
then run that Document through this XSL. this is all accomplished in
Java (1.4.2_06) using the javax.xml.trans form.Transforme r class.
this works pretty well on most pages except a few gives it problems.
for example, http://www.netsol.com does not work. i get the following
error:
-------------------------------------------------------------------
javax.xml.trans form.Transforme rException: org.w3c.dom.DOM Exception:
NAMESPACE_ERR: An attempt is made to create or change an object in a way
which is incorrect with regard to namespaces.
at
org.apache.xala n.transformer.C lonerToResultTr ee.cloneToResul tTree(ClonerToR esultTree.java: 268)
at
org.apache.xala n.templates.Ele mCopy.execute(E lemCopy.java:15 5)
at
org.apache.xala n.templates.Ele mApplyTemplates .transformSelec tedNodes(ElemAp plyTemplates.ja va:425)
at
org.apache.xala n.templates.Ele mApplyTemplates .execute(ElemAp plyTemplates.ja va:216)
at
org.apache.xala n.transformer.T ransformerImpl. executeChildTem plates(Transfor merImpl.java:23 39)
at
org.apache.xala n.templates.Ele mCopy.execute(E lemCopy.java:16 2)
at
org.apache.xala n.templates.Ele mApplyTemplates .transformSelec tedNodes(ElemAp plyTemplates.ja va:425)
at
org.apache.xala n.templates.Ele mApplyTemplates .execute(ElemAp plyTemplates.ja va:216)
at
org.apache.xala n.transformer.T ransformerImpl. executeChildTem plates(Transfor merImpl.java:23 39)
at
org.apache.xala n.transformer.T ransformerImpl. applyTemplateTo Node(Transforme rImpl.java:2160 )
at
org.apache.xala n.transformer.T ransformerImpl. transformNode(T ransformerImpl. java:1213)
at
org.apache.xala n.transformer.T ransformerImpl. transform(Trans formerImpl.java :668)
at
org.apache.xala n.transformer.T ransformerImpl. transform(Trans formerImpl.java :1129)
at
org.apache.xala n.transformer.T ransformerImpl. transform(Trans formerImpl.java :1107)
at ApplyTextSpan.a pplyXSL(ApplyTe xtSpan.java:79)
at ApplyTextSpan.m ain(ApplyTextSp an.java:40)
Caused by: org.w3c.dom.DOM Exception: NAMESPACE_ERR: An attempt is made
to create or change an object in a way which is incorrect with regard to
namespaces.
at
org.apache.xala n.transformer.R esultTreeHandle r.flushElem(Res ultTreeHandler. java:870)
at
org.apache.xala n.transformer.R esultTreeHandle r.flushPending( ResultTreeHandl er.java:954)
at
org.apache.xala n.transformer.R esultTreeHandle r.startElement( ResultTreeHandl er.java:243)
at
org.apache.xala n.transformer.C lonerToResultTr ee.cloneToResul tTree(ClonerToR esultTree.java: 219)
... 15 more
---------
maybe the error is in the java stuff i have, but as far as the XSL file
i posted above, does it look correct? thank you very much.
--
Xiaolei Li | xl***@uiuc.edu | www.xiaolei.org