[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Convert 2 xml with 1 xsl file

Subject: Re: Convert 2 xml with 1 xsl file
From: António Mota <xptm@xxxxxxx>
Date: Fri, 10 Dec 2004 18:21:13 +0000
convert iso um
E am Marcelo, tudo em cima?

<xsl:apply-templates> doesn't work because you have no templates to apply!
And
even if you example work (besides the apply-template) it's not good writen.
Instead of a for-each, place the code in template that take care of you
catalog/cd, and write another one to take care of your teste.xml/cd. Then yoy
have templates to apply to. Look at the code below.


<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
    <h2>My CD Collection</h2>
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Title</th>
        <th align="left">Artist</th>
      </tr>
      <xsl:apply-templates select="catalog/cd"/>
      <xsl:apply-templates select="document('teste.xml')/cd"/>
  </table>
  </body>
  </html>
</xsl:template>

<xsl:template match="catalog/cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
</xsl:template>
<xsl:template match="cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
</xsl:template>

</xsl:stylesheet>



Um abrago ca deste lado...




Quoting Marcelo <marcelochyna@xxxxxxxxxxxx>:

> Hi Again! I did what you said but I can't make it
> work. What am I doing wrong?
>
> Here is my files:
>
>
> cdcatalog.xsl
> ****************************************************
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
>
> <xsl:template match="/">
> <xsl:apply-templates select="document('teste.xml')"/>
>   <html>
>   <body>
>     <h2>My CD Collection</h2>
>     <table border="1">
>       <tr bgcolor="#9acd32">
>         <th align="left">Title</th>
>         <th align="left">Artist</th>
>       </tr>
>       <xsl:for-each select="catalog/cd">
>       <tr>
>         <td><xsl:value-of select="title" /></td>
>         <td><xsl:value-of select="artist" /></td>
>       </tr>
>       </xsl:for-each>
>
>   </table>
>   </body>
>   </html>
> </xsl:template>
>
> </xsl:stylesheet>
>
>
> ****************************************************
> cdcatalog.xml
> ****************************************************
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> <catalog>
>   <cd>
>     <title>Empire Burlesque</title>
>     <artist>Bob Dylan</artist>
>     <country>USA</country>
>     <company>Columbia</company>
>     <price>10.90</price>
>     <year>1985</year>
>   </cd>
> </catalog>
>
>
> ****************************************************
> teste.xml
> ****************************************************
>
> <?xml version="1.0" encoding="ISO-8859-1"?>
>
> 	<cd>
> <title>Hide your heart</title>
> <artist>Bonnie Tyler</artist>
> <country>UK</country>
> <company>CBS Records</company>
> <price>9.90</price>
> <year>1988</year>
> </cd>
>
>
>
> ****************************************************
> transformador.htlm
> ****************************************************
>
> <html>
> <body>
>
> <script type="text/javascript">
>
> // Load XML
> var xml = new ActiveXObject("Microsoft.XMLDOM");
> xml.async = false;
> xml.load("cdcatalog.xml");
>
> // Load XSL
> var xsl = new ActiveXObject("Microsoft.XMLDOM");
> xsl.async = false;
> xsl.load("cdcatalog.xsl");
>
> // Transform
> document.write(xml.transformNode(xsl));
>
> </script>
>
> </body>
> </html>
>
> ****************************************************
>
>
>  --- JBryant@xxxxxxxxx escreveu:
> > Make that:
> >
> > <xsl:apply-templates
> > select="document('otherDocument.xml')"/>
> >
> > I was just looking at one of my own stylesheets that
> > merges two documents
> > (today's problem to solve) and noticed that I had
> > forgotten the quotation
> > marks in the message I sent to the list.
> >
> > Sorry about the extra traffic.
> >
> > Jay Bryant
> > Bryant Communication Services
> >
> >
> >
> >
> > JBryant@xxxxxxxxx
> > 12/09/2004 05:44 PM
> > Please respond to
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >
> >
> > To
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > cc
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject
> > Re:  Convert 2 xml with 1 xsl file
> >
> >
> >
> >
> >
> >
> > I can't speak to the Java part of it, but the
> > document function can solve
> > the convert two (or n) files from a single
> > stylesheet problem. The
> > following instruction pulls in the content of
> > another document and
> > processes it:
> >
> > <xsl:apply-templates
> > select="document(otherDocument)"/>
> >
> > Jay Bryant
> > Bryant Communication Services
> >
> >
> >
> >
> > Marcelo <marcelochyna@xxxxxxxxxxxx>
> > 12/09/2004 08:30 PM
> > Please respond to
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >
> >
> > To
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > cc
> >
> > Subject
> >  Convert 2 xml with 1 xsl file
> >
> >
> >
> >
> >
> >
> > Hi! May anybody help me? I need to convert 2 xml
> > with
> > 1 xsl file to a XHTML file. How do I do that?
> >
> > Besides that. Does anybody knows Java? Because I
> > need
> > to do this convertion within it.
> >
> > My code converts 1 xml with 1 xsl file. But how can
> > I
> > do with 2 xml)
> >
> > Thanks.
> >
> > Marcelo.
> >
> >
> > This is my code:
> >
> > ***************************************************
> >
> >
> > public static void xsl(
> >                                  String xml1,
> >                                  String xml2,
> >                                  String outFilename,
> >                                  String xslFilename)
> > {
> >                                  try {
> >                                                  //
> > Create transformer
> > factory
> >
> > TransformerFactory
> > factory =
> > TransformerFactory.newInstance();
> >
> >                                                  //
> > Use the factory to
> > create a template containing
> > the xsl file
> >
> > Templates template =
> >  factory.newTemplates(
> >   new StreamSource(new
> > FileInputStream(xslFilename)));
> >
> >                                                  //
> > Use the template to
> > create a transformer
> >
> > Transformer xformer =
> > template.newTransformer();
> >
> >
> > InputStream in = new
> > URL(xml1).openStream();
> >                                  //
> > StringBuffer s = new
> > StringBuffer();
> >
> >  System.out.println(in.toString());
> >
> > Source source = new
> > StreamSource(in);
> >
> > //Source source = new
> > StreamSource(new
> > FileInputStream(inFilename));
> >
> > Result result = new
> > StreamResult(new
> > FileOutputStream(outFilename));
> >
> >                                                  //
> > Apply the xsl file to
> > the source file and write
> > the result to the output file
> >
> > xformer.transform(source,
> >
> > result);
> >                                  } catch
> > (FileNotFoundException e) {
> >  System.out.println("FileNotFoundException ");
> >
> > e.printStackTrace();
> >                                  } catch
> > (TransformerConfigurationException e) {
> >
> >
> System.out.println("TransformerConfigurationException
> > ");
> >
> > e.printStackTrace();
> >                                                  //
> > An error occurred in
> > the XSL file
> >                                  } catch
> > (TransformerException e) {
> >  System.out.println("TransformerException ");
> >                                                  //
> > An error occurred
> > while applying the XSL file
> >                                                  //
> > Get location of error
> > in input file
> >
> > SourceLocator locator =
> > e.getLocator();
> >                                                  int
> > col =
> > locator.getColumnNumber();
> >                                                  int
> > line =
> > locator.getLineNumber();
> >
> > String publicId =
> > locator.getPublicId();
> >
> > String systemId =
> > locator.getSystemId();
> >
> > e.printStackTrace();
> >                                  } catch
> > (MalformedURLException e) {
> >                                                  //
> > TODO Auto-generated
> > catch block
> >
> > e.printStackTrace();
> >
> === message truncated ===
>
> __________________________________________________
> Converse com seus amigos em tempo real com o Yahoo! Messenger
> http://br.download.yahoo.com/messenger/
>
>





O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.