Я полный новичок в xslt
. Я пытаюсь придумать преобразование, которое вносит незначительные изменения в исходный XML-документ, например, из:
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns:xliff="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
<file>
<trans-unit>
<source>Kodiak1 [[Name]]</source>
<target></target>
</trans-unit>
</file>
</xliff>
до:
<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns:xliff="urn:oasis:names:tc:xliff:document:1.1" version="1.1">
<file>
<trans-unit>
<source>Kodiak1 [[Name]]</source>
<target>Kodiak1 <ph>Name</ph></target>
</trans-unit>
</file>
</xliff>
До сих пор я придумал:
<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:template match="target">
<target>
<xsl:value-of select="preceding-sibling::source" />
</target>
</xsl:template>
</xsl:stylesheet>
Который копирует текст из узла <source>
в узел <target>
, но теперь я застрял - не в последнюю очередь потому, что если я добавлю еще один <xsl:template match="...">
, он будет соответствовать оригиналу (например, не новому тексту - Можете ли вы сказать мне, каким должен быть следующий шаг?