2013-02-22 87 views
1

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

我们有XML文件

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

,我想获得的图像路径插入图片。

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

的话,我想选择 “fatherpic/myfather.jpg”

这意味着我想改变 “/” 到“\ ”。

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

确实可以举例吗?谢谢

回答

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> 
+0

我们可以申请 - 每个循环? – 2013-02-22 10:23:47

+0

你想循环什么? – dogbane 2013-02-22 10:25:18

0

正如你在你的文章中所说,你可以使用翻译功能。

以下样式表提取图像值的值,并在执行所描述的字符串转换后以文本形式输出。这只是一个如何使用翻译功能的例子。

<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> 

希望它有帮助。