如何使用Java脚本或XSL将两个XML文件合并为一个?

如何使用Java脚本或XSL将两个XML文件合并为一个?,java,xml,xslt,jscript,Java,Xml,Xslt,Jscript,我有02个XML文件,我需要用这两个文件的数据组合生成一个报告。使用XSLT输出为HTML文件或单个XML File1 <FitnessCenter> <Member id="1" level="platinum"> <Name>Kamal</Name> <Phone type="home">2921234</Phone> <Phone type="work">258

我有02个XML文件,我需要用这两个文件的数据组合生成一个报告。使用XSLT输出为HTML文件或单个XML

File1

<FitnessCenter>
  <Member id="1" level="platinum">
       <Name>Kamal</Name>
       <Phone type="home">2921234</Phone>
       <Phone type="work">2581247-293</Phone>
       <FavoriteColor>brown</FavoriteColor>
       <MembershipFee>1000</MembershipFee>
  </Member>
    <Member id="2" level="silver">
        <Name>Wasantha</Name>
        <Phone type="home">2934321</Phone>
        <Phone type="work">2581247-293</Phone>
        <FavoriteColor>green</FavoriteColor>
        <MembershipFee>500</MembershipFee>
    </Member>
</FitnessCenter>

卡莫尔
2921234
2581247-293
棕色的
1000
瓦桑塔
2934321
2581247-293
绿色
500
文件2

<FitnessCenter>
<Member id="3" level="platinum">
        <Name>Aysha</Name>
        <Phone type="home">2926745</Phone>
        <Phone type="work">2581245-292</Phone>
        <FavoriteColor>black</FavoriteColor>
        <MembershipFee>1000</MembershipFee>
    </Member>
    <Member id="4" level="platinum">
        <Name>Nishani</Name>
        <Phone type="home">2925647</Phone>
        <Phone type="work">2581245-292</Phone>
        <FavoriteColor>yellow</FavoriteColor>
        <MembershipFee>1000</MembershipFee>
    </Member>
</FitnessCenter>

艾莎
2926745
2581245-292
黑色
1000
尼沙尼
2925647
2581245-292
黄色的
1000
我尝试使用下面的XSL方法来组合这两个文件,但没有成功

<xsl:template match="/">
<xsl:copy>
  <xsl:copy-of select="*/FitnessCenter()"/>
  <xsl:copy-of select="document('File2.xml')/*/FitnessCenter()"/>
</xsl:copy>
</xsl:template>

如果有人有解决方案,请发表意见。

如何:

<?xml version="1.0" encoding="UTF-8"?>
<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:template match="/FitnessCenter">
        <xsl:copy>
            <xsl:copy-of select="Member" />
            <xsl:copy-of select="document('File2.xml')/FitnessCenter/Member" />
        </xsl:copy>
</xsl:template>
</xsl:stylesheet>

假设您希望将所有4个成员合并到一个单个FitnessCenter元素中,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<FitnessCenter>
  <Member id="1" level="platinum">
       <Name>Kamal</Name>
       <Phone type="home">2921234</Phone>
       <Phone type="work">2581247-293</Phone>
       <FavoriteColor>brown</FavoriteColor>
       <MembershipFee>1000</MembershipFee>
  </Member>
  <Member id="2" level="silver">
        <Name>Wasantha</Name>
        <Phone type="home">2934321</Phone>
        <Phone type="work">2581247-293</Phone>
        <FavoriteColor>green</FavoriteColor>
        <MembershipFee>500</MembershipFee>
    </Member>
  <Member id="3" level="platinum">
        <Name>Aysha</Name>
        <Phone type="home">2926745</Phone>
        <Phone type="work">2581245-292</Phone>
        <FavoriteColor>black</FavoriteColor>
        <MembershipFee>1000</MembershipFee>
    </Member>
  <Member id="4" level="platinum">
        <Name>Nishani</Name>
        <Phone type="home">2925647</Phone>
        <Phone type="work">2581245-292</Phone>
        <FavoriteColor>yellow</FavoriteColor>
        <MembershipFee>1000</MembershipFee>
    </Member>
</FitnessCenter>

卡莫尔
2921234
2581247-293
棕色的
1000
瓦桑塔
2934321
2581247-293
绿色
500
艾莎
2926745
2581245-292
黑色
1000
尼沙尼
2925647
2581245-292
黄色的
1000
在这里找到它。。。 我希望这对你有帮助。。 这是java解决方案


下面的帖子似乎已经回答了你同样的问题

在您的尝试中,您没有使用第三个文件来执行最终输出所需的处理


@ser3016153我正在尝试一个for循环,以便将所有输出都放在一个文件中,所以当使用这个“选择副本”时,我应该在for循环之前使用它吗?还是xsl文件的开始?@AnjalarFernando为什么需要使用循环?我已编辑我的答案以显示结果。如果这不是您想要的,请编辑您的问题并显示您期望的结果。您好@ser3016153您是如何生成单张输出的?您是否将xsl文件链接到其中一个xml文件,或者是否有任何方法可以生成一个新文件,将两者结合起来?我有点糊涂了。@AnjalaFernando我再次编辑了我的答案,以显示整个样式表。当您使用上述样式表对第一个XML文件执行XSL转换时,输出将如上所示。我不使用任何应用程序生成文件,我使用记事本+,因此我不知道如何链接和查看输出您确实需要XSLT转换引擎来执行所需的转换,您需要安装用于XSLT转换的Notpad++插件。eclipse中的示例