2013-12-23 46 views
1

我有02個XML文件,我需要用這兩個文件的數據組合生成報告。無論是出把爲HTML文件或單一XML使用XSLT如何將2個XML文件合併到#Java Script或#XSL中?

文件1

<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> 

文件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> 

我嘗試使用以下XSL方法這兩個文件結合起來,但它不起作用,

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

如果有人有解決方案,請發表評論。

回答

0

如何:

<?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名成員合併成一個單一的健身中心元素,像這樣:

<?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> 
+0

@ ser3016153我試着一個for循環得到所有的輸出到一個文件中,所以當使用這個「copy-of Select」我應該在for循環之前使用它嗎?或者從xsl文件開始? –

+0

@AnjalaFernando爲什麼你需要使用循環?我編輯了我的答案以顯示結果。如果這不是您想要的,請編輯您的問題並顯示您期望的結果。 –

+0

HI @ ser3016153您是如何生成該單一輸出的?你有沒有將xsl文件鏈接到其中一個xml文件,或者有什麼方法可以生成一個新的文件?我有點困惑。 –

1

看起來像你一樣的問題後下已經回答了。

在你嘗試,你還沒有使用第三個文件,爲最終出來做必要的處理把

Merging two XML files using XSLT

+0

我沒有使用任何應用程序來生成文件,我使用Notepad ++,所以我不知道如何鏈接和看到輸出 –

+0

你明確需要有XSLT轉換引擎做必要的轉換,你需要安裝用於XSLT轉換的Notpad ++插件。例如在日食http://www.vogella.com/articles/XSLT/article.html – 2013-12-23 10:33:14