Subject: Re: [xsl] Convert 2 xml with 1 xsl file From: António Mota <xptm@xxxxxxx> Date: Fri, 10 Dec 2004 18:21:13 +0000 |
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: [xsl] 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 > > [xsl] 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 |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Convert 2 xml with 1 xsl , Marcelo | Thread | Re: [xsl] Convert 2 xml with 1 xsl , Jake The Snake Brigg |
AW: [xsl] Tree from directory listi, Thomas Zöchling | Date | [xsl] how to extract words from a t, Jan Limpens |
Month |