Fwd: [xsl] Problem to create an xml file from two xml files

Subject: Fwd: [xsl] Problem to create an xml file from two xml files
From: "Mukul Gandhi" <gandhi.mukul@xxxxxxxxx>
Date: Wed, 12 Apr 2006 11:43:54 +0530
I am trying to post the following query to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx . But everytime it is being bounced
back.

There is a request to u. Could u please post the following query to
xsl-mailing list.


I have following 2 xml files:

booklist.xml
  --------------------------

  <booklist>
  <book>
  <title>C++</title>
  <author>AAAA</author>
  </book>
  <book>
  <title>XML</title>
  <author>BBBB</author>
  </book>
  </booklist>

  books.xml
  -------------------
  <books>
  <book>
  <b_title>XML</b_title>
  <price>600.00</price>
  </book>
  <book>
  <b_title>C++</b_title>
  <price>300.00</price>
  </book>
  <book>
  <b_title>Oracle</b_title>
  <price>1500.00</price>
  </book>
  </books>

 When the name of the title will be matched between 2 xml files
Output xml file will contain <title> from booklist.xml and <price> from
books.xml.

Output xml file will be like following:
-------------------------------------------------------------

<bookinfo>
<title>C++</title>
<price>300.00</price>
<title>XML</title>
<price>600.00</price>
<title>Linux</title>
<price>900.00</price>
<title>Java</title>
<price>1000.00</price>
</bookinfo>

Following xsl file I have written, but it is not working.

booklist.xsl (1st method)
------------------------------------------

  <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:variable name="btitle"
select="document('books.xml')/books/book"/>
  <xsl:template match="booklist/book">
  <bookinfo>
  <xsl:for-each select="$btitle">
  <xsl:choose>
  <xsl:when test="b_title = title">
  <title>
  <xsl:value-of select="title"/>
  </title>
  <price>
  <xsl:value-of select="$btitle/price"/>
  </price>
  </xsl:when>
  </xsl:choose>
  </xsl:for-each>
  </bookinfo>
  </xsl:template>
  </xsl:stylesheet>


  booklist.xsl (2nd method)
------------------------------------------

    <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
  <xsl:variable name="btitle"
select="document('books.xml')/books/book"/>
  <xsl:variable name="temp" select="document('booklist.xml')"/>
  <xsl:variable name="temp1" select="$temp/booklist/book"/>
  <xsl:template match="/">
  <bookinfo>
  <xsl:for-each select="$temp1">
  <xsl:choose>
  <xsl:when test="title = $btitle/b_title">
  <title>
  <xsl:value-of select="$temp1/title"/>
  </title>
  <price>
  <xsl:value-of select="$btitle/price"/>
  </price>
  </xsl:when>
  </xsl:choose>
  </xsl:for-each>
  </bookinfo>
  </xsl:template>

    </xsl:stylesheet>


  Any help will be highly appreciated.

  Thanks,
  Saurabh

Current Thread