Sponsored Content
Full Discussion: XML to csv transformation
Top Forums Shell Programming and Scripting XML to csv transformation Post 302343722 by siba.s.nayak on Thursday 13th of August 2009 11:19:49 AM
Old 08-13-2009
XML to csv transformation

Hi,

I want to write a perl script. Which should accept the xml file, one xsl file and the loaction. The perl script should process the xml file using the xsl file and puts the out put in specified location.

For example:

My.perl is perls cript.
my.xml
is like this
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!--  Edited by XMLSpy®   --> 
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
 <catalog>
	<cd>
	      <title>Empire Burlesque</title> 
	      <artist>Bob Dylan</artist> 
	      <country>USA</country> 
	  </cd>
              <cd>
	     <title>Private Dancer</title> 
	     <artist>Tina Turner</artist> 
	    <country>UK</country> 
	    <company>Capitol</company> 
             </cd>
  </catalog>

test.xsl is
Code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table border="1">
<xsl:for-each select="catalog/cd">
	<tr>
		<td>
		<xsl:value-of select="."/>
		</td>
	</tr>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

When I execute the perl script
my.perl my.xml test.xsl /root/siba/a.txt

Then It will save the out put in /root/siba/a.txt
The a.txt would be like this

HTML Code:
Empire Burlesque Bob Dylan USA Columbia 10.90 1985  
Private Dancer Tina Turner UK Capitol 8.90 1983
Please suggect some idea, how can write the script.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

CSV to XML

Iam pretty new to UNIX and would like to convert a CSV to an XML file using AWK scripts. Can anybody suggest a solution? My CSV file looks something like this : Serial No Growth% Annual % Commission % Unemployed % 1 35% 29% 59% 42% 2 61% ... (15 Replies)
Discussion started by: pjanakir
15 Replies

2. Shell Programming and Scripting

CSV processing to XML

Hi, i am really fresh with shell scripting and programming, i have an issue i am not able to solve to populate data on my server for Cisco IP phones. I have CSV file within the following format: ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;... (9 Replies)
Discussion started by: angel2008
9 Replies

3. Shell Programming and Scripting

XML file transformation

Hi all, I have to transform a XML file like this: <?xml version="1.0"?> <vocabulary> <voc_id>102</voc_id> <name>Vocabulary Name</name> <description>Voc description</description> <relations>3</relations> <hierarchy>5</hierarchy> <word> <word_id>1</word_id> ... (1 Reply)
Discussion started by: aLittleBeat
1 Replies

4. Shell Programming and Scripting

XML to CSV specific

Hi , Please any one to help on ,extract this xml code into csv columns list. <SOURCEFIELD BUSINESSNAME ="" DATATYPE ="date" DESCRIPTION ="" FIELDNUMBER ="1" FIELDPROPERTY ="0" FIELDTYPE ="ELEMITEM" HIDDEN ="NO" KEYTYPE ="NOT A KEY" LENGTH ="19" LEVEL ="0" NAME ="BUSINESS_DATE"... (4 Replies)
Discussion started by: mohan705
4 Replies

5. Shell Programming and Scripting

Convert xml to csv

I need to convert below xml code to csv. I searched other posts as well but this post (_https://www.unix.com/shell-programming-scripting/174417-extract-parse-xml-data-statistic-value-csv.html) gives "sed command garbled" error. As of now I have written a long script to do it, but can it be done with... (7 Replies)
Discussion started by: dineshydv
7 Replies

6. UNIX for Dummies Questions & Answers

XML to TXT or CSV

Hi all, I am new to unix and even newer to XML :wall: I have a dataset which I need to work on and extract data from but I cant even see things. its a XML file which i need to analyse and return the results in xml as well but need to filter some of them like i would do with excel file so not... (7 Replies)
Discussion started by: A-V
7 Replies

7. Shell Programming and Scripting

XML to CSV

I want to pharse below Xml Using Shell Scripting . Thanks in Advance <md> <neid> <neun>1523</neun> <nedn>XXX1212</nedn> <nesw>fffff12515</nesw> </neid> <mi> <mts>20141128001500</mts> <gp>550</gp> <mt>pmct1</mt> <mt>pmNo2</mt> <mt>pmNo3S</mt> <mv> <moid>Ma=1,Rn=1,Ul=311C</moid>... (6 Replies)
Discussion started by: pareshkp
6 Replies

8. UNIX and Linux Applications

Xml to csv

Hello, Does anyone know of a way to convert an .xml file (ONIX) to something more workable, like a .csv (or even .xls) file? Ideally something on the command line would be ideal, but not absolutely necessary. I would be dealing with .xml files of 125 MB+. I am using XQuartz in El Capitan. ... (17 Replies)
Discussion started by: palex
17 Replies

9. UNIX for Beginners Questions & Answers

Xml to csv (again)

Hello, I have copied .xml code for a single item below. I am trying to extract three items (field indices*b244 (second occurrence), b203, and j151), so the desired output would be: 9780323013543 Manual of Natural Veterinary Medicine: Science and Tradition, 1e 68.95 A parallel solution,... (14 Replies)
Discussion started by: palex
14 Replies

10. Shell Programming and Scripting

Converting XML to CSV

Hello, For i while i have been using XMLStarlet to convert several XML files to CSV files. So far this always went fine. Today however i got a new XML format however but i cannot find out how to get the data i need. Below is part of the code where it shows the different format. What... (10 Replies)
Discussion started by: SDohmen
10 Replies
XSLT_SET_SAX_HANDLERS(3)						 1						  XSLT_SET_SAX_HANDLERS(3)

xslt_set_sax_handlers - Set the SAX handlers to be called when the XML document gets processed

SYNOPSIS
void xslt_set_sax_handlers (resource $processor, array $handlers) DESCRIPTION
xslt_set_sax_handlers(3) registers the SAX $handlers for the document, given a XSLT $processor resource. Using xslt_set_sax_handlers(3) doesn't look very different than running a SAX parser like xml_parse(3) on the result of an xslt_process(3) transformation. PARAMETERS
o $ processor -The XSLT processor link identifier, created with xslt_create(3). o $handlers -$handlers should be an array in the following format: <?php $handlers = array( "document" => array( "start_doc", "end_doc"), "element" => array( "start_element", "end_element"), "namespace" => array( "start_namespace", "end_namespace"), "comment" => "comment", "pi" => "pi", "character" => "characters" ); ?> Note The given array does not need to contain all of the different sax handler elements (although it can), but it only needs to conform to "handler" => "function" format described above. Each of the individual SAX handler functions are in the format below: o start_doc (resource $processor) o end_doc (resource $processor) o start_element (resource $processor, string $name, array $attributes) o end_element (resource $processor, string $name) o start_namespace (resource $processor, string $prefix, string $uri) o end_namespace (resource $processor, string $prefix) o comment (resource $processor, string $contents) o pi (resource $processor, string $target, string $contents) o characters (resource $processor, string $contents) RETURN VALUES
No value is returned. EXAMPLES
Example #1 xslt_set_sax_handlers(3) Example <?php // From ohlesbeauxjours at yahoo dot fr // Here's a simple example that applies strtoupper() on // the content of every <auteur> tag and then displays the // resulting XML tree: $xml='<?xml version="1.0"?> <books> <book> <title>Mme Bovary</title> <author>Gustave Flaubert</author> </book> <book> <title>Mrs Dalloway</title> <author>Virginia Woolf</author> </book> </books>'; $xsl='<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" encoding="ISO-8859-1" indent="no" omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:for-each select="books/book"> <livre> <auteur><xsl:value-of select="author/text()"/></auteur> </livre> </xsl:for-each> </xsl:template> </xsl:stylesheet>'; // Handlers : function start_document() { // start reading the document } function end_document() { // end reading the document } function start_element($parser, $name, $attributes) { global $result,$tag; $result .= "<". $name . ">"; $tag = $name; } function end_element($parser, $name) { global $result; $result .= "</" . $name . ">"; } function characters($parser, $data) { global $result,$tag; if ($tag == "auteur" ) { $data = strtoupper($data); } $result .= $data; } // Transformation : $xh = xslt_create(); $handlers = array("document" => array("start_document","end_document"), "element" => array("start_element","end_element"), "character" => "characters"); xslt_set_sax_handlers($xh, $handlers); xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl)); xslt_free($xh); ?> You can also use xslt_set_object(3) if you want to implement your handlers in an object. Example #2 Object oriented handler <?php // This is the object oriented version of the previous example class data_sax_handler { var $buffer, $tag, $attrs; var $_xh; function data_sax_handler($xml, $xsl) { // our xslt resource $this->_xh = xslt_create(); xslt_set_object($this->_xs, $this); // configure sax handlers $handlers = array( "document" => array('start_document', 'end_document'), "element" => array('start_element', 'end_element'), "character" => 'characters' ); xslt_set_sax_handlers($this->_xh, $handlers); xslt_process($this->_xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml"=>$xml, "/_xsl"=>$xsl)); xslt_free($this->_xh); } function start_document() { // start reading the document } function end_document() { // complete reading the document } function start_element($parser, $name, $attributes) { $this->tag = $name; $this->buffer .= "<" . $name . ">"; $this->attrs = $attributes; } function end_element($parser, $name) { $this->tag = ''; $this->buffer .= "</" . $name . ">"; } function characters($parser, $data) { if ($this->tag == 'auteur') { $data = strtoupper($data); } $this->buffer .= $data; } function get_buffer() { return $this->buffer; } } $exec = new data_sax_handler($xml, $xsl); ?> Both examples will output: <livre> <auteur>GUSTAVE FLAUBERT</auteur> </livre> <livre> <auteur>VIRGINIA WOOLF</auteur> </livre> PHP Documentation Group XSLT_SET_SAX_HANDLERS(3)
All times are GMT -4. The time now is 11:38 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy