Witam,
mam nastepujacy dokument XML (ksiazka)
<book>
<t p="1">Tytul <i>rozdzialu</i></t>
<t p="2">Podtytul rodzialu</t>
<item nr="1">
Paragraf 1
</item>
<item nr="2">
Paragraf 2
</item>
itd
</book>
Chcialbymzmodyfikowac plik XML tak, aby dodac do tytulow najblizszy "nr" z "item"
napisalem plik XSLT:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<xsl:import href="copy.xslt"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="yes" media-type="text/xml"/>
<xsl:template match="t">
<xsl:copy><xsl:copy-of select="@*"/>[<xsl:value-of select="following-sibling::item/@nr"/>] <xsl:value-of select="."/></xsl:copy>
</xsl:template>
</xsl:stylesheet>
Otrzymuje:
<t p="1">[1] Tytul rozdzialu</t>
a chcialbym uzyskac:
<t p="1">[1] Tytul <i>rozdzialu</i></t>
czyli gubie znaczniki kusywy.
Jak poprawic moj plik XSLT, ewentualnie moze trzeba wszystko zmienic?
Jesli mozna, to prosze o cos dokladnego, bo nie jestem zadnym specjalista.
Pozdrawiam
Robert
PS
uzywam msxml, a plik "copy.xslt" jest nastepujacy:
<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node( ) | @*">
<xsl:copy>
<xsl:apply-templates select="@* | node( )"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>