我正在学习XSL,我有关于替换字符串中特定字符的问题。
我们有xml文件
<family>
-<familyid id="first">
--<name>smith</name>
--<image>fatherpic\myfather.jpg</image>
我希望获得插入图片的图片路径。
例如,我们有路径“fatherpic \ myfather.jpg”
然后我想选择“fatherpic / myfather.jpg”
这意味着我想将“/”更改为“\”。
我正在尝试使用翻译功能。但它不起作用。
有没有可以举例的?感谢
答案 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>
希望它有所帮助。