XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
seema rSubject: xml conversion using xslt, xalan
Author: seema r
Date: 31 Jan 2006 07:14 AM
I need to transform xml in one format to another, I am using xalan-
org.apache.xalan.xslt.process as xslt processor, Can I input to xmls and generate a single xml.

eg:
input1 xml
<comic_book>
<name>xyz</name>
<price>100</price>
</comic_book>

input2 xml
<compuer_book>
<name>abcd</name>
<price>400</price>
</computer_book>

and output xml
<books>
<comic><name>..</comic>
<computer_book><name>...</computer_book>

Postnext
Tony LavinioSubject: xml conversion using xslt, xalan
Author: Tony Lavinio
Date: 31 Jan 2006 09:54 AM
This code will merge the two.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<books>
<xsl:copy-of select="document('input1.xml')"/>
<xsl:copy-of select="document('input2.xml')"/>
</books>
</xsl:template>
</xsl:stylesheet>

Using the document() function, you can merge multiple documents. You
can even use just a portion, just like any other XPath - like this:
<xsl:value-of select="document('input1.xml')/comic_book/name"/>

Postnext
seema rSubject: xml conversion using xslt, xalan
Author: seema r
Date: 31 Jan 2006 11:33 PM
Thanks for the reply.
Can I put my xmls I need to merge in a folder and merge all xmls to get a single xml. what I mean is I dont want to specify all the xml filenames in the xsl, just give a folder name.
Please help..

Postnext
Tony LavinioSubject: xml conversion using xslt, xalan
Author: Tony Lavinio
Date: 01 Feb 2006 09:07 AM
You'd need the list of names with Xalan. Could you have a process build
an XML document that contained the contents of the directory right before
the XSLT was called?

A second alternative would be to use Saxon. It has built-in support
for an extension that lets you search directories by wildcard and get
a collection of the files within, but Xalan does not.

And a third would be to write a Java extension function that returns
a list of the files in the directory and then your program could iterate
through them.

Postnext
seema rSubject: xml conversion using xslt, xalan
Author: seema r
Date: 03 Feb 2006 12:55 AM
thanks,
can I read a normal text file from an xsl. I mean I dont want to hardcode the filenames, if I can't use wildcards. I can do a dir and put the file names into a textfile and read the filenames from using xsl.
Thanks in advance.

Postnext
Tony LavinioSubject: xml conversion using xslt, xalan
Author: Tony Lavinio
Date: 03 Feb 2006 10:16 AM
You can read a normal textfile from Xalan in two ways.

1) You can write a custom extension to parse the file in Java or
some other language. (Hard way.)

2) You can use the adapters in Stylus Studio. (Easy way.) For the
main input document, use something like this:
"adapter:Line?file:///c:/folder/filename.txt"

That will run the input file 'filename.txt' from the directory
named 'folder' through the 'line' adapter, which will turn it
into an XML document where it will produce XML like this:

Input:
abc.xml
def.xml
ghi.xml

Output:
<root>
<line>abc.xml</line>
<line>def.xml</line>
<line>ghi.xml</line>
</root>

Then you can write something like this sample program, which goes
though each EDI/XML document in my directory, and grabs the
prolog elements of each.

<?xml version="1.0" encoding="US-ASCII"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="US-ASCII" indent="yes"/>
<xsl:template match="/">
<edi_document_session_starts>
<xsl:for-each select="root/line">
<xsl:apply-templates select="document(concat('file:///c:/folder/', .))/*"/>
</xsl:for-each>
</edi_document_session_starts>
</xsl:template>
<xsl:template match="EDIFACT">
<unb>
<xsl:value-of select="normalize-space(UNB)"/>
</unb>
</xsl:template>
<xsl:template match="X12">
<isa>
<xsl:value-of select="normalize-space(ISA)"/>
</isa>
</xsl:template>
</xsl:stylesheet>

Postnext
seema rSubject: xml conversion using xslt, xalan
Author: seema r
Date: 06 Feb 2006 04:08 AM
thanks a lot.
Can you suggest me some sites where I can study more about xslt, syntax and usage. find more examples.

Posttop
Tony LavinioSubject: xml conversion using xslt, xalan
Author: Tony Lavinio
Date: 06 Feb 2006 09:34 AM
Go buy a copy of XSLT Cookbook from Sal Mangano. It has lots of
'recipes' for common every-day XSLT tasks.

Or browse through the XSL-LIST email list.
http://www.stylusstudio.com/xsllist

 
Topic Page 1 2 3 4 5 6 7 8 9 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.