|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Moving (promoting) XML elements through XSL
> I think I made your suggested changes
> correctly, but my output hasn't changed. The indexterm element still
> doesn't appear in my output XML doc.
You shouldn't get any output at all.
$ saxon topic.xml topic.xsl
Error at xsl:copy on line 17 of file:/c:/Temp/topic.xsl:
Cannot write an attribute when there is no open start tag
Transformation failed: Run-time errors were reported
As the error message says you need to do attributes first, so apply
templates to @* then make your index then do other stuff:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output indent="yes"/>
<xsl:template match="/topic">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<prolog>
<metadata>
<keywords>
<xsl:copy-of
select="title/indexterm"/>
</keywords>
</metadata>
</prolog>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="indexterm"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
$ saxon topic.xml topic.xsl
<?xml version="1.0" encoding="utf-8"?>
<topic id="i267011">
<prolog>
<metadata>
<keywords>
<indexterm>Hardware Requirements</indexterm>
<indexterm>Software Requirements</indexterm>
</keywords>
</metadata>
</prolog>
<title>
Software Requirements
</title>
<body>
..
</body>
</topic>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






