xsl-list
[Top] [All Lists]

RE: Retrieving data from two XMLs and creating another XML using XSLT

2006-02-15 12:03:19
I make no claims for it's elegance, but this stylesheet will do what you 
described if you name Input File 1 "manasi-d2.xml" and Input File 2 
"manasi-d1.xml".
============================================
<?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" indent="yes" />
  <xsl:strip-space elements="*" />

  <xsl:variable name="ddoc" select="document('manasi-d2.xml')" />

  <xsl:template match="/">
    <xsl:apply-templates />
  </xsl:template>

<xsl:template match="Root">
  <xsl:apply-templates />
</xsl:template>

<xsl:template match="Form">
  <Info>
    <Person Name="{$ddoc/Data/Section/Specimen/@Name}">
          <Data 
Tag="{Section/@Name}.{Section/Set/@Name}.{Section/Set/Item/@Name}" 
Value="{$ddoc/Data/Section/Specimen/Test/Result/TextResult/@Value}"/>
    </Person>
  </Info>
</xsl:template>

<xsl:template match="Section" />
<xsl:template match="Set" />
<xsl:template match="Item" />

</xsl:stylesheet>


-- 
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Manasi Kulkarni <Manasi(_dot_)Kulkarni(_at_)phaseforward(_dot_)com>
Sent:     Wed, 15 Feb 2006 13:41:53 -0500
To:       'xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject:  [xsl] Retrieving data from two XMLs and creating another XML using 
XSLT

I want to read data from two XML files with completely different structure
and build third XML using XSLT.

The input XML files are of the form:

Input File 1:

<Data>
        <Section>
                <Specimen Name="John Smith"> 
                <Test Name="Test1">
                            <Result>
<TextResult Value="123"/>
                          <Result>
                        </Test>
        </Section>
</Data>

Input File 2:
<Root>
        <Form Name="Form1">
              <Section Name="Sect1">
                    <Set Name="Set1">
                          <Item Name="Item1"/>
                  </Set>
            </Section>
       </Form>
</Root>


Output File:
<Info>
        <Person Name="John Smith">
              <Data Tag="Sect1.Set1.Item1" Value="123"/>
        </Person>
</Info>

The output XML contains some value from first XML and some from second XML.

My mail problem is creating 'Tag' attribute for output XML which is
concatenated string of values from second XML.

I tried using xsl:variable / param, however it gives me an error when I use
concat function with variables. 

Can this be done using XSL? Or should I write custom converter using Java /
C#?

Any help would be appreciated.

Thanks,
Manasi              

                                         

This message contains privileged and confidential information intended only
for the use of the addressee(s) named above.  If you are not the intended
recipient of this message, or the employee or agent responsible for
delivering it to the intended recipient, you are hereby notified that any
dissemination or copying of this message is strictly prohibited.  If you
have received this message in error, please immediately notify the sender by
return electronic mail and delete the original message without retaining a
copy. 



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>
  • RE: Retrieving data from two XMLs and creating another XML using XSLT, cknell <=