我有这个来源和目标:
我需要我的地图会生成一个有2个“T”节点的目标。
第一个是“A”源内容,第二个是“B”源内容。
例如:
输入:
<Root>
<A>
<FieldA>FA</FieldA>
<FieldB>FB</FieldB>
</A>
<B>
<FieldC>FC</FieldC>
<FieldD>FD</FieldD>
</B>
</Root>
请求输出:
<Root>
<T>
<F1>FA</F1>
<F2>FB</F1>
</T>
<T>
<F1>FC</F1>
<F2>FD</F2>
</T>
</Root>
***关于从“B”到“T”的地图还有一个条件
答案 0 :(得分:0)
以下是您想要实现的目标:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Root">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="A|B">
<xsl:element name="T">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="*[parent::A or parent::B]">
<xsl:choose>
<xsl:when test="./name() = 'FieldA' or ./name() = 'FieldC'">
<xsl:element name="F1">
<xsl:value-of select="."/>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:element name="F2">
<xsl:value-of select="."/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
此外,请花时间报告您迄今为止所尝试的内容。所以不做你的功课。所以,在未来的问题中展示你的努力。
答案 1 :(得分:0)
放置循环functoid
A --> Looping Functoid --> T
B --> Looping Functoid --> T
FieldA --> F1
FieldB --> F2
FieldC --> F1
FieldD --> F2
答案 2 :(得分:0)
只需通过循环Functoid将A和B链接到T.