【发布时间】:2018-06-01 19:01:07
【问题描述】:
我需要转换这个值:
<MediaFile>F:\DEMO\TEST\HELLO.pm4</MediaFile>
对此:
<MediaFile>F:\\DEMO\\TEST\\HELLO.pm4</MediaFile>
我尝试了很多东西,翻译、连接、子串和替换,但我没有成功。
这正是我尝试过的:
源文件:
<?xml version="1.0" encoding="UTF-8" ?>
<Asset version="1.0">
<Target>
<Name>HELLO</Name>
<MediaFile>F:\DEMO\TEST\HELLO.mp4</MediaFile>
</Target>
</Asset>
XSLT:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text" indent="yes" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:variable name="MediaFile">
<xsl:value-of select="Asset/Target/MediaFile"/>
</xsl:variable>
<xsl:variable name="Media">
<xsl:value-of select="replace($MediaFile,'\','\\')"/>
</xsl:variable>
<xsl:element name="Media">
<xsl:value-of select="$Media"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
我正在使用 xslt 2.0
有什么想法吗?谢谢
【问题讨论】:
-
您可以使用哪个版本的 XSLT? XSLT 2 或 3 提供所有 XPath 2 或 3 函数,例如
replacew3.org/TR/xpath-functions/#func-replace -
XSLT 2.0,我尝试替换但没有得到任何好处,我确定我做的不对..
-
您能否编辑您的问题以显示您尝试过的内容(在 XSLT 2.0 中,带有替换)。你可能已经不远了......
-
我只是编辑我的问题,是的,我可能在某个时候已经关闭了它......
-
反斜杠常用于改变下一个字符的行为。例如:\n 代表换行符。因此,要指示文字反斜杠,通常需要写 '\\'。因此,请尝试将 '\\' 替换为 '\\\\'。