xsl替换字符串中的特定字符

时间:2013-02-22 09:55:35

标签: html xml xslt xls

我正在学习XSL,我有关于替换字符串中特定字符的问题。

我们有xml文件

<family>
-<familyid id="first">
--<name>smith</name>
--<image>fatherpic\myfather.jpg</image>

我希望获得插入图片的图片路径。

例如,我们有路径“fatherpic \ myfather.jpg”

然后我想选择“fatherpic / myfather.jpg”

这意味着我想将“/”更改为“\”。

我正在尝试使用翻译功能。但它不起作用。

有没有可以举例的?感谢

2 个答案:

答案 0 :(得分:1)

以下xslt将打印在图像元素中用'/'替换'\',并将不加改变地打印xml文件的其余部分。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" />
    <xsl:template match="node() | @*">
        <xsl:copy>
            <xsl:apply-templates select="node() | @*" />
        </xsl:copy>
    </xsl:template>
    <xsl:template match="image">
        <image>
            <xsl:value-of select="translate(., '\', '/')" />
        </image>
    </xsl:template>
</xsl:stylesheet>

答案 1 :(得分:0)

正如您在帖子中所说,您可以使用翻译功能。

以下样式表提取图像值的值,并在执行所描述的字符串翻译后将其输出为文本。这只是如何使用translate函数的一个示例。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="text" indent="no" />

    <xsl:template match="text()" />

    <xsl:template match="image">
        <xsl:value-of select="translate(., '\', '/')" />
    </xsl:template>

</xsl:stylesheet>

希望它有所帮助。