у меня есть следующий xml, который является результатом выполнения xslt:
<?xml version="1.0" encoding="UTF-8"?>
<toc xmlns:fn="http://www.w3.org/2004/07/xpath-functions" label="Sample Table of Contents">
<topic label="Title1" href="Ref1#ref1">
<topic label="Title 2" href="Ref2#ref2">
<topic label="Title3" href="Ref3#ref3"/>
<topic label="Title4" href="Ref4#ref4"/>
</topic>
<topic label="Title5" href="Ref5#ref5"/>
</topic>
<topic label="Title6" href="Ref6#ref6"/>
</toc>
и следующий XSLT, который создает этот xml:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="D:\Documents and Settings\oshecht\Desktop\XSL\Copy of toc.xml"?>
<?altova_samplexml D:\Documents and Settings\oshecht\Desktop\XSL\Copy of toc.xml?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2004/07/xpath-functions">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="BODY">
<toc label="Sample Table of Contents">
<xsl:apply-templates select="UL/LI/OBJECT"/>
</toc>
</xsl:template>
<xsl:template match="OBJECT">
<topic label="{param[@name='Name']/@value}" href="{param[@name='Local']/@value}">
<xsl:apply-templates select="following-sibling::UL/LI/OBJECT"/>
</topic>
</xsl:template>
</xsl:stylesheet>
Я хочу, чтобы в выходном XML я имел:
Следующее:
- та же строка, но вместо href = "Ref1 # ref1" иметь:
href = "Ref1" - удалить все после "#"
я знаю о функции substring-before (Ref1 # ref1, '#'), но как я могу активировать ее из моего XSLT?
Не могли бы вы посоветовать?