Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 需要替换标记-xsl中的文本_Xslt_Xslt 1.0 - Fatal编程技术网

Xslt 需要替换标记-xsl中的文本

Xslt 需要替换标记-xsl中的文本,xslt,xslt-1.0,Xslt,Xslt 1.0,输入: 以下XSLT执行预期的替换: <Remarks>Random data,value1:abc,value2:controls,value3:free text,random data</Remarks> 输出: <xsl:template match="Remarks"> <Remarks><xsl:value-of select="concat(normalize-space(substring-before(text()

输入:


以下XSLT执行预期的替换:

<Remarks>Random data,value1:abc,value2:controls,value3:free text,random data</Remarks>

输出:

<xsl:template match="Remarks">
  <Remarks><xsl:value-of select="concat(normalize-space(substring-before(text(),'## B2B## abc,controls,free text ## B2B##')),',value1:abc,value2:controls,value3:free text,',normalize-space(substring-after(text(),'## B2B## abc,controls,free text ## B2B##')))" /></Remarks>
</xsl:template>
随机数据,值1:abc,值2:控件,值3:自由文本,随机数据
或者,为了使其更通用,请对字符串使用变量:

<Remarks>Random data,value1:abc,value2:controls,value3:free text,random data</Remarks>

更一般的是:

<xsl:template match="/lines/Remarks">
  <xsl:variable name="str2Replace" select="'## B2B## abc,controls,free text ## B2B##'" />
  <xsl:variable name="replacement" select="',value1:abc,value2:controls,value3:free text,'" />
  <Remarks><xsl:value-of select="concat(normalize-space(substring-before(text(),$str2Replace)),$replacement,normalize-space(substring-after(text(),$str2Replace)))" /></Remarks>
</xsl:template>


因此,您可以在调用模板中使用不同的值。

以下XSLT执行预期的替换:

<Remarks>Random data,value1:abc,value2:controls,value3:free text,random data</Remarks>

输出:

<xsl:template match="Remarks">
  <Remarks><xsl:value-of select="concat(normalize-space(substring-before(text(),'## B2B## abc,controls,free text ## B2B##')),',value1:abc,value2:controls,value3:free text,',normalize-space(substring-after(text(),'## B2B## abc,controls,free text ## B2B##')))" /></Remarks>
</xsl:template>
随机数据,值1:abc,值2:控件,值3:自由文本,随机数据
或者,为了使其更通用,请对字符串使用变量:

<Remarks>Random data,value1:abc,value2:controls,value3:free text,random data</Remarks>

更一般的是:

<xsl:template match="/lines/Remarks">
  <xsl:variable name="str2Replace" select="'## B2B## abc,controls,free text ## B2B##'" />
  <xsl:variable name="replacement" select="',value1:abc,value2:controls,value3:free text,'" />
  <Remarks><xsl:value-of select="concat(normalize-space(substring-before(text(),$str2Replace)),$replacement,normalize-space(substring-after(text(),$str2Replace)))" /></Remarks>
</xsl:template>


因此,您可以在调用模板中使用不同的值。

我已经尝试过了,没有多大帮助:(如果我尝试过,您能提供示例XSL吗,没有多大帮助:(如果有的话,你能给我提供XSL示例和一个更多的帮助:在###B2B###标记中的3个值未知,你能在这里提供帮助吗?我不确定你的评论是什么意思。我用一个更通用的解决方案更新了我的答案。你可以根据需要调整
调用模板
参数。如果你需要其他的话,我建议创建另一个新问题。我发布了另一个问题,我的意思是##B2B####标记中的值不是固定的,它们会随着每次交易而改变,还有一个帮助:在###B2B###标记中的3个值是未知的,您也能在这里提供帮助吗?我不确定您的评论是什么意思。我更新了一个更详细的答案l解决方案。您可以根据需要调整
调用模板
参数。如果您需要一些不同的内容,我建议您创建另一个新问题。我发布了另一个问题,我的意思是##B2B##标记中的值不是固定的,每个事务都会更改