Thanks Ken, it's working ok now....
Cheers,
Rui
On Fri, 2004-01-23 at 16:19, G. Ken Holman wrote:
At 2004-01-23 15:28 +0000, Rui Alberto L." Gonçalves wrote:
I have a document that looks like:
<result>
<filed name="xpto" value="<elem>Hello<elem>"/>
</result>
and I want to transform to :
<result>
<filed name="xpto">Hello</elem>
</result>
That isn't well-formed so it isn't XML ... do you mean
<result>
<filed name="xpto"><elem>Hello</elem></filed>
</result>
If so, it is a small change to your stylesheet:
I tried:
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<xsl:template match="filed">
<xsl:element name="filed">
You are missing the preservation of the name attribute:
<xsl:copy-of select="@name"/>
<xsl:value-of select ="@value"/>
Change the above to:
<xsl:value-of disable-output-escaping="yes" select="@value"/>
</xsl:element>
</xsl:template>
but entities are not resolved. Any idea?
Resolved? The entities represent text characters and in your old
stylesheet they went out as text characters so they had to be escaped. By
turning off escaping you get what you want, but two caveats:
(1) - a processor is not obliged to respect d-o-e=
(2) - you can produce a non-well-formed result that isn't XML if you
have "bad" data in your text of your input
If you avoid d-o-e= then your output will *always* be well-formed XML.
I hope this helps.
.................... Ken
t:\ftemp>type rui.xml
<result>
<filed name="xpto" value="<elem>Hello<elem>"/>
</result>
t:\ftemp>type rui.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<xsl:template match="filed">
<xsl:element name="filed">
<xsl:copy-of select="@name"/>
<xsl:value-of select ="@value" disable-output-escaping="yes"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
t:\ftemp>saxon rui.xml rui.xsl
<?xml version="1.0" encoding="utf-8"?><result>
<filed name="xpto"><elem>Hello<elem></filed>
</result>
t:\ftemp>
--
Public courses: sign up for one or both soon to reserve your seat!
Each week: Monday-Wednesday: XSLT/XPath; Thursday-Friday: XSL-FO
Washington, DC: 2004-03-15 San Francisco, CA: 2004-03-22
Hong Kong, China: 2004-05-17 Bremen, Germany: 2004-05-24
World-wide on-site corporate, government & user group XML training
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/s/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
Rui Alberto L. Gonçalves <rui-l-goncalves(_at_)ptinovacao(_dot_)pt>
PT Inovação
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list