Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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复制一个节点值并创建一个新节点_Xslt - Fatal编程技术网

XSLT复制一个节点值并创建一个新节点

XSLT复制一个节点值并创建一个新节点,xslt,Xslt,有人可以指导我如何编写XSLT1.0来创建如下输出吗? **复制值** 2. 3. 1111111111 到 复制值 2. 3. 1111111111 **复制值** 以下XSLT提取**之间的复制值字符串,并将其复制到标记的末尾。然后,将复制值前后的字符串用作标记的前缀和后缀 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/

有人可以指导我如何编写XSLT1.0来创建如下输出吗?

**复制值**
2.
3.
1111111111


复制值
2.
3.
1111111111
**复制值**

以下XSLT提取
**
之间的
复制值
字符串,并将其复制到
标记的末尾。然后,将
复制值
前后的字符串用作
标记的前缀和后缀

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"/>

<xsl:template match="node()|@*">
  <xsl:copy>
    <xsl:apply-templates select="node()|@*"/>
  </xsl:copy>
</xsl:template>

<xsl:template match="payload">
    <xsl:variable name="copyval" select="substring-before(substring-after(test/text(),'**'),'**')" />
    <xsl:variable name="valBefore" select="substring-before(test/text(),$copyval)" />
    <xsl:variable name="valAfter" select="substring-after(test/text(),$copyval)" />
    <xsl:copy>
      <test><xsl:value-of select="$copyval" /></test>
      <xsl:apply-templates select="node()[not(self::test)]|@*" />
      <xsl:value-of select="$valBefore" /><copied><xsl:value-of select="$copyval" /></copied><xsl:value-of select="$valAfter" />
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>


我认为那些星号并不存在。我不认为
node()[local-name()!='test']
是一种好的做法-我会使用
node()[not(self::test)]
。如果有必要的话。@michael.hor257k:我用你建议的更好的练习改进了我的答案。关于星号:是的,我也想知道。但这是我提出的问题,我试着回答。如果作者对此发表评论,我可以根据需要轻松删除这些行。