【发布时间】:2014-06-18 22:34:00
【问题描述】:
我有两个 XML 文件,我正在尝试使用 xsl 合并一些元素。
XML1:
<ALL xmlns:a="http://example.com/ns1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<a:BusinessUnit>
<a:businessUnitCode>SGS</a:businessUnitCode>
<a:longName>Singapore Global Sourcing</a:longName>
<a:parentBusinessUnitCode>CGS</a:parentBusinessUnitCode>
</a:BusinessUnit>
<a:BusinessUnit>
<a:businessUnitCode>EGH</a:businessUnitCode>
<a:longName>EMS Global HQ</a:longName>
<a:parentBusinessUnitCode xsi:nil="true"/>
</a:BusinessUnit>
XML2:
<Get_ProductFamily xmlns:aa="http://example.com/ns2">
<aa:ProductFamily>
<aa:integrationId>2323</aa:integrationId>
<aa:parentBusinessUnitCode>EGH</aa:parentBusinessUnitCode>
</aa:ProductFamily>
<aa:ProductFamily>
<aa:integrationId>3434</aa:integrationId>
<aa:parentBusinessUnitCode>CGS</aa:parentBusinessUnitCode>
</aa:ProductFamily>
<aa:ProductFamily>
<aa:integrationId>4545</aa:integrationId>
<aa:parentBusinessUnitCode>CDD</aa:parentBusinessUnitCode>
</aa:ProductFamily>
</Get_ProductFamily>
输出:
<GroupList>
<Group>
<Name>EGH - EMS Global HQ</Name>
<ProductLineList>
<ProductLine>
<Name>EGH</Name>
<CODE>2323</CODE>
</ProductLine>
</ProductLineList>
</Group>
<GroupList>
我想从第一个文件中读取业务单位数据,从第二个文件中读取产品系列数据并生成组信息。
步骤如下: 阅读所有业务部门
组名是 a:businessUnitCode 和 a:longName 的串联(我做了这部分)
当a:parentBusinessUnitCode为空时,读取它的a:businessUnitCode,在第二个文件中搜索这个businessUnitCode。
如果 a:businessUnitCode(第一个文件)等于 aa:parentBusinessUnitCode(第二个文件) 然后打印它的集成 ID。
请帮助我,因为我是 xsl 的新手。
【问题讨论】:
-
你至少可以自己尝试一下。
-
我已将 for-each 用于第一个文件及其工作,但无法在第二个文件上应用 foreach。:(
-
您似乎遗漏了输入中的一些命名空间声明。您还应该向我们展示您的尝试。
标签: xml xslt xslt-1.0 merging-data