XLST:将ID从一个子节点复制到另一个子节点

CORR

我已经寻找了一段时间,并尝试了很多选择,这些选择部分地满足了我的要求。我对XSLT不够熟悉,无法将它们组合成我想要的东西。感谢您的帮助。

我的xml

<?xml version="1.0" encoding="UTF-8"?>
<parent>
    <id>1</id>
    <child>
        <a>sample</a>
    </child>
</parent>

<parent>
    <id>2</id>
    <child>
        <a>sample</a>
    </child>
</parent>     

输出必须如下:

<parent>
    <id>1</id>
    <child>
        <id>1</d>
        <a>sample</a>
    </child>
</parent>

<parent>
    <id>2</id>
    <child>
        <id>2</id>
        <a>sample</a>
    </child>
</parent>

我发现一个xsl代码可以执行我想要的操作,但是它复制属性,而我需要复制ID内的数字(没有将ID设置为属性的选项)。我还想知道xls是否有可能知道哪个父级/ id必须附加到哪个孩子,因为它们都是相同的。

马克·文斯特拉

我相信您的输入XML缺少根元素,因此我使用了以下输入XML:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <parent>
        <id>1</id>
        <child>
            <a>sample</a>
        </child>
    </parent>
    <parent>
        <id>2</id>
        <child>
            <a>sample</a>
        </child>
    </parent>
</data>

如果我应用此XSLT:

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

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

    <!-- Match on element child and copy this element, but on top add a new element
          <id> and fill this with the ancestor element called parent and it's child id -->
    <xsl:template match="child">
        <xsl:copy>
            <xsl:apply-templates select="@*" /> <!-- Copy attributes first because we will add a node after this -->
            <id><xsl:value-of select="ancestor::parent/id" /></id>
            <xsl:apply-templates select="node()" />
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

输出将是:

<?xml version="1.0" encoding="UTF-8"?>
<data>
    <parent>
        <id>1</id>
        <child>
            <id>1</id>
            <a>sample</a>
        </child>
    </parent>
    <parent>
        <id>2</id>
        <child>
            <id>2</id>
            <a>sample</a>
        </child>
    </parent>
</data>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将轴限制从一个子图(“相等”方面)复制到另一个子图中

来自分类Dev

使用 firebase 云函数将数据从一个 node1 子节点复制到另一个 node2 子节点

来自分类Dev

将点击事件从一个子组件传递到另一个子组件

来自分类Dev

如何将子节点结构从一个XML文件复制到另一个XML文件(合并两个XML文件)?

来自分类Dev

将 css 文件从一个子目录复制到 CONTAINER BLOB 中的另一个子目录

来自分类Dev

使用嵌套的For Each和If从另一个子节点返回节点值

来自分类Dev

将两个结果在一个子传递到另一个子

来自分类Dev

给定两个二进制数,将一个子集从一个复制到另一个

来自分类Dev

Vue.js:将数据从一个子组件传递到具有相同父组件的另一个子组件吗?

来自分类Dev

我如何通过另一个子节点从父节点获取子节点内文

来自分类Dev

在XSLT中,如何根据另一个子节点的值显示一个子节点的值

来自分类Dev

neo4j创建子节点并将其链接到另一个子节点

来自分类Dev

如何返回用 XSLT 中另一个子节点的数据修改的子节点?

来自分类Dev

仅将第一个子元素复制到输出

来自分类Dev

如何将子组件路由到另一个子组件

来自分类Dev

Neo4J-将所有关系从一个节点复制到另一个节点(C#包装器)

来自分类Dev

Neo4J-将所有关系从一个节点复制到另一个节点(C#包装器)

来自分类Dev

如何将回调从一个子组件传递到另一个

来自分类Dev

将包含另一个子布局的子布局从一个占位符移动到另一个占位符

来自分类Dev

如何在.htaccess中从一个子域重定向到另一个子域?

来自分类Dev

如何在VueJS中将值从一个子组件传递到另一个子组件?

来自分类Dev

如何在React中将数据值从一个子组件传递到另一个子组件?

来自分类Dev

如何在 VBA 中将字段的设置变量名称从一个子例程传递到另一个子例程?

来自分类Dev

使用XPath获取节点的每个子节点的第一个子节点

来自分类Dev

将数据从一个子布局发送到Sitecore中的另一个子布局

来自分类Dev

将Linux DNS服务器从一个子域指向另一个子域

来自分类Dev

将特定的电子邮件从一个子文件夹移动到另一个子文件夹

来自分类Dev

从另一个子执行子

来自分类Dev

如何将一个子域重写为另一个子域?

Related 相关文章

  1. 1

    将轴限制从一个子图(“相等”方面)复制到另一个子图中

  2. 2

    使用 firebase 云函数将数据从一个 node1 子节点复制到另一个 node2 子节点

  3. 3

    将点击事件从一个子组件传递到另一个子组件

  4. 4

    如何将子节点结构从一个XML文件复制到另一个XML文件(合并两个XML文件)?

  5. 5

    将 css 文件从一个子目录复制到 CONTAINER BLOB 中的另一个子目录

  6. 6

    使用嵌套的For Each和If从另一个子节点返回节点值

  7. 7

    将两个结果在一个子传递到另一个子

  8. 8

    给定两个二进制数,将一个子集从一个复制到另一个

  9. 9

    Vue.js:将数据从一个子组件传递到具有相同父组件的另一个子组件吗?

  10. 10

    我如何通过另一个子节点从父节点获取子节点内文

  11. 11

    在XSLT中,如何根据另一个子节点的值显示一个子节点的值

  12. 12

    neo4j创建子节点并将其链接到另一个子节点

  13. 13

    如何返回用 XSLT 中另一个子节点的数据修改的子节点?

  14. 14

    仅将第一个子元素复制到输出

  15. 15

    如何将子组件路由到另一个子组件

  16. 16

    Neo4J-将所有关系从一个节点复制到另一个节点(C#包装器)

  17. 17

    Neo4J-将所有关系从一个节点复制到另一个节点(C#包装器)

  18. 18

    如何将回调从一个子组件传递到另一个

  19. 19

    将包含另一个子布局的子布局从一个占位符移动到另一个占位符

  20. 20

    如何在.htaccess中从一个子域重定向到另一个子域?

  21. 21

    如何在VueJS中将值从一个子组件传递到另一个子组件?

  22. 22

    如何在React中将数据值从一个子组件传递到另一个子组件?

  23. 23

    如何在 VBA 中将字段的设置变量名称从一个子例程传递到另一个子例程?

  24. 24

    使用XPath获取节点的每个子节点的第一个子节点

  25. 25

    将数据从一个子布局发送到Sitecore中的另一个子布局

  26. 26

    将Linux DNS服务器从一个子域指向另一个子域

  27. 27

    将特定的电子邮件从一个子文件夹移动到另一个子文件夹

  28. 28

    从另一个子执行子

  29. 29

    如何将一个子域重写为另一个子域?

热门标签

归档