XSLTを使用してすべてを置き換えることができます。
XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:variable name="replacedURL">
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="/product/url/text()"/>
<xsl:with-param name="replace" select="'[id]'"/>
<xsl:with-param name="by" select="'Hello'"/>
</xsl:call-template>
</xsl:variable>
<xsl:value-of select="$replacedURL"/>
</xsl:template>
<xsl:template name="string-replace-all">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="by"/>
<xsl:choose>
<xsl:when test="contains($text, $replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$by"/>
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="by" select="$by"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
上記のXSLTでは、「string-replace-all」というテンプレートを使用しました。このテンプレートは、すべての一致を必要な値に置き換えます。
レンプレート:
<xsl:template name="string-replace-all">
<xsl:param name="text"/>
<xsl:param name="replace"/>
<xsl:param name="by"/>
<xsl:choose>
<xsl:when test="contains($text, $replace)">
<xsl:value-of select="substring-before($text,$replace)"/>
<xsl:value-of select="$by"/>
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="substring-after($text,$replace)"/>
<xsl:with-param name="replace" select="$replace"/>
<xsl:with-param name="by" select="$by"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
テンプレートを呼び出す方法は?
<xsl:call-template name="string-replace-all">
<xsl:with-param name="text" select="/product/url/text()"/>
<xsl:with-param name="replace" select="'[id]'"/>
<xsl:with-param name="by" select="'Hello'"/>
</xsl:call-template>
ここ:
text
:http://website.com/imformation?x = [id]&y = [op]
replace
:[id]
by
: こんにちは
出力:
http://website.com/imformation?x=Hello&y=[op]
同じことをしてください[op]
。