Я хочу удалить предшествующую './' и первую папку, если она не названа 'снимки экрана' для любого файла, принадлежащего imagedata
Так от
<section xmlns="http://docbook.org/ns/docbook" version="5">
<title>Screenshot</title>
<para xreflabel="New Type" xml:id="manageNewType">
<mediaobject>
<imageobject>
<imagedata fileref="./views/screenshots/manageType1.png" width="100%"/>
</imageobject>
<caption>
<para>New Mode</para>
</caption>
</mediaobject>
</para>
<para xreflabel="Edit Type" xml:id="manageEditType">
<mediaobject>
<imageobject>
<imagedata fileref="./screenshots/manageType2.png" width="100%"/>
</imageobject>
<caption>
<para>Edit Mode</para>
</caption>
</mediaobject>
</para>
</section>
Для того, чтобы:
Скриншот
<para xreflabel="New Type" xml:id="manageNewType">
<mediaobject>
<imageobject>
<imagedata fileref="screenshots/manageType1.png" width="100%"/>
</imageobject>
<caption>
<para>New Mode</para>
</caption>
</mediaobject>
</para>
<para xreflabel="Edit Type" xml:id="manageEditType">
<mediaobject>
<imageobject>
<imagedata fileref="screenshots/manageType2.png" width="100%"/>
</imageobject>
<caption>
<para>Edit Mode</para>
</caption>
</mediaobject>
</para>
</section>
Вот моя текущая таблица стилей, которая по какой-то причине ничего не делает ...
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="imagedata/@fileref[starts-with(.,'./')
and not(starts-with(.,'./screenshots/'))
]">
<xsl:attribute name="fileref">
<xsl:value-of select="substring-after(substring-after(.,'./'), '/')"/>
</xsl:attribute>
</xsl:template>
<xsl:template match="imagedata/@fileref[starts-with(.,'./screenshots/')]">
<xsl:attribute name="fileref">
<xsl:value-of select="substring-after(.,'./')"/>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>
Редактировать Добавлен xmlns = "http://docbook.org/ns/docbook" версия =" 5 "в раздел.