2013-12-23 1 views
1

У меня есть 02 файлов XML, мне нужно создать отчет с комбинацией данных обоих файлов. либо вне положенное в качестве HTML-файла или единого XML с помощью XSLTКак объединить 2 XML-файла в один с #Java Script или #XSL?

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> 

File2

<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 Im пытаясь для цикла, чтобы получить все выходные данные в один файл, поэтому при используя эту «копию« Выбрать », следует ли использовать это перед циклом for? или запуск файла xsl? –

+0

@AnjalaFernando Зачем вам нужен цикл? Я отредактировал свой ответ, чтобы показать результат. Если это не то, что вы хотите, отредактируйте свой вопрос и покажите результат, который вы ожидаете. –

+0

HI @ ser3016153 Как вы создали этот сингл? Вы связали файл xsl с одним из файлов xml или есть способ создать новый файл, объединяющий оба? Я немного смущен. –

1

Посмотрите, как ваши же вопросы уже ответил на ниже должности.

В вашей попытке, вы не использовали третий файл, чтобы сделать необходимую обработку для окончательного из положить

Merging two XML files using XSLT

+0

Я не использую какое-либо приложение для создания файлов, я использую Notepad ++, поэтому я не знаю, как связать и посмотреть результат –

+0

Вам определенно нужно, чтобы механизм преобразования XSLT выполнял необходимые преобразования, вам необходимо установить плагин для Notpad ++ для преобразования XSLT , пример в eclipse http://www.vogella.com/articles/XSLT/article.html –