当前位置: 首页 > 知识库问答 >
问题:

XSLT复制子节点文本到父节点

史懿轩
2023-03-14

我需要以下xslt代码方面的帮助。我的意见如下:

 <book>
      <book1>
           <name>abc</name>
           <revision>1</revision>
      </book1>
      <book2>
           <name>pqr</name>
           <author>def</author>
      </book2>
 </book>

我的预期输出为:

  <book>
      <item>
           <name>book1</name>
           <value>abc1</value>
      </item>
      <item>
           <name>book2</name>
           <value>pqrdef</value>
      </item>
 </book>

我曾尝试使用*/text()获取值节点的值,但我只从第一个孩子获得文本。将来我有很多这样的子元素。

提前谢谢。

你好,Minakshi

共有1个答案

汪天宇
2023-03-14

此样式表将为您提供所需的内容。即使boonK元素的子元素增加,模板也不需要更改。

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

    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

    <xsl:template match="book">
        <xsl:copy>
            <xsl:apply-templates select="*"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="book/*">
        <item>
            <name>
                <xsl:value-of select="name()"/>
            </name>
            <value>
                <xsl:for-each select="*">
                    <xsl:value-of select="."/>
                </xsl:for-each>
            </value>
        </item>
    </xsl:template>

</xsl:stylesheet>
 类似资料:
  • 我想从父节点复制到子节点。我真的不确定这是如何实现的。 我的源xml 我想得到输出为 我想要XSLT1.0中的解决方案。 我想将这些节点复制到子节点 谢谢。

  • 我需要将子元素复制到父元素中。 输入 期望输出 我尝试的内容(输出与输入保持相同): 我肯定会错过一些非常简单的事情。子元素与父元素具有相同的名称,这应该不是问题?

  • 我正在寻找下面输入和输出XML的XSLT(1.0)代码。 在输出XML中,C6元素下可以有任何子节点。在下面的XML中,我放了CN元素,但它可以是任何名称。 输入XML- 所需的输出XML- 先谢谢你。

  • 如果我没弄错的话,树通常是一个列表,其中的元素按特定顺序排列。孩子们不在他们自己的子列表中,他们都在同一个列表中。 所以,我试图创建一个Tree类,其中包含TreeNodes(类)使用Tree类中的List。 我如何跟踪父母/孩子/叶子?如果父母“父母1”,有两个孩子“孩子A”和“孩子B”,我如何将他们联系在一起?

  • 我有一个XML文档,它包含一个非常复杂(对我来说)的结构,没有换行符。它有许多具有类似结构的元素: 我需要得到节点值的文本,这是节点成员的孩子也有孩子的名字与特定的文本(在这种情况下virtual_size)。也有可能存在几个类似的节点。我可以用[1]etc吗? 这让我知道了节点的名称,但是如何达到“值”节点呢?

  • 您能帮助我使用xslt实现以下预期输出吗。 输入 预期输出