属性从一个元素转移到另一个元素



需要一些决策模式帮助。无法为简单的目标进行组合编码。

我需要什么。

--1在基本XML文件中,我有一个具有唯一ID(非数字,如"d124914-a402-ab72-949a"(属性的父元素

--2然后我有超过10个子元素

--3(怎么做(

------>获取(通过变量?(该属性值

------>将该ID唯一属性插入到其他超过10个元素,以及它们已经存在的属性

谢谢!

考虑以下示例:

XML

<root>
<parent id="100">
<child id="1">alpha</child>
<child id="2">bravo</child>
<child id="3">charlie</child>
</parent>
<parent id="200">
<child id="4">red</child>
<child id="5">green</child>
</parent>
</root>

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:strip-space elements="*"/>
<!-- identity transform -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="child">
<child parent-id="{../@id}">
<xsl:apply-templates select="@*|node()"/>
</child>
</xsl:template>
</xsl:stylesheet>

结果

<?xml version="1.0" encoding="UTF-8"?>
<root>
<parent id="100">
<child parent-id="100" id="1">alpha</child>
<child parent-id="100" id="2">bravo</child>
<child parent-id="100" id="3">charlie</child>
</parent>
<parent id="200">
<child parent-id="200" id="4">red</child>
<child parent-id="200" id="5">green</child>
</parent>
</root>

要更好地理解这一点,请阅读属性值模板。

最新更新