02-22-2008
This is not as simple to do as converting from CSV to XML.
First you have to remove the declarations, root element and comments, then for each "record" figure out which elements should be columns and which "record" has the greatest number of columns. Unless it is a very simple XML document, it may not be easily parsed.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Dear all,
Can you send me a script file the changes .xml to .csv file.
Thanks,
Srinivasa (4 Replies)
Discussion started by: srinivasaphani
4 Replies
2. Shell Programming and Scripting
Can any one give the idea on this, please.
I have the following XML file and wants to convert into CSV(comma separated value) format.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Waveset PUBLIC 'waveset.dtd' 'waveset.dtd'>
<Waveset>
<Object name='ra8736'>
<Attribute name='ADDRESS'... (2 Replies)
Discussion started by: kumar04
2 Replies
3. UNIX for Dummies Questions & Answers
Urgent help to transfer data from .xml to xl sheet where each attribute and value goes into seperate column.Please help me with the command.Please help
Thanks
Uma (9 Replies)
Discussion started by: umapearl
9 Replies
4. Shell Programming and Scripting
Hi,
I have an xml file and I want to convert it with awk in to a csv file
Test.xml
<Worksheet ss:Name="Map1">
<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="60">
<Row>
<Cell><Data... (6 Replies)
Discussion started by: research3
6 Replies
5. Shell Programming and Scripting
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. Shell Programming and Scripting
I have huge xml file in server and i want to convert it to .csv with specific column ...
i have search in blog but i didn't get any usefully command.
Thanks in advance (1 Reply)
Discussion started by: pareshkp
1 Replies
7. Shell Programming and Scripting
Hi Guys,
I am new to Shell scripting and need to convert an XML files to a CSV file.
My actual problem is that XML file loading is taking hours and I have decided to convert the XML structure to row based data in a CSV file.
My XML file: Message846 can repeat within main loop and... (1 Reply)
Discussion started by: qamar.shahbaz
1 Replies
8. Shell Programming and Scripting
I am in need of converting billions of XML into csv file to load data to DB, i have found the below code in perl but not sure why it's not working properly.
CODE:
#!/usr/bin/perl
# Script to illustrate how to parse a simple XML file
# and pick out all the values for a specific element, in... (1 Reply)
Discussion started by: rspwilliam
1 Replies
9. Shell Programming and Scripting
Hello,
I am working on a part of code where I need a awk or shell script to convert the given XML file to CSV or TXT file.
There are multiple xml files and of different structure, so a single script is required for converting data.
I did find a lot of solutions in the forum but... (16 Replies)
Discussion started by: Rashmitha
16 Replies
10. UNIX for Advanced & Expert Users
we have a CSV which i need to convert to XML using Perl or Unix shell scripting.
I was able to build this XML in oracle database. However, SQL/XML query is running for long time. Hence, I'm considering to write a Perl or shell script to generate this XML file. Basically need to build this XML... (3 Replies)
Discussion started by: laknar
3 Replies
LEARN ABOUT DEBIAN
xml::filter::docsplitter
XML::Filter::DocSplitter(3pm) User Contributed Perl Documentation XML::Filter::DocSplitter(3pm)
NAME
XML::Filter::DocSplitter - Multipass processing of documents
SYNOPSIS
## See XML::SAX::???? for an easier way to use this filter.
use XML::SAX::Machines qw( Machine ) ;
my $m = Machine(
[ Intake => "XML::Filter::DocSplitter" => qw( Filter ) ],
[ Filter => "My::Filter" => qw( Merger ) ],
[ Merger => "XML::Filter::Merger" => qw( Output ) ],
[ Output => *STDOUT ],
);
## Let the distributor coordinate with the merger
## XML::SAX::Manifold does this for you.
$m->Intake->set_aggregator( $m->Merger );
$m->parse_file( "foo" );
DESCRIPTION
XML::Filter::DocSplitter is a SAX filter that allows you to apply a filter to repeated sections of a document. It splits a document up at
a predefined elements in to multiple documents and the filter is run on each document. The result can be left as a stream of separate
documents or combined back in to a single document using a filter like XML::SAX::Merger.
By default, the input document is split in all children of the root element. By that reckoning, this document has three sub-documents in
it:
<doc>
<subdoc> .... </subdoc>
<subdoc> .... </subdoc>
<subdoc> .... </subdoc>
</doc>
When using without an aggregator, all events up to the first record are lost; with an aggregator, they are passed directly in to the
aggregator as the "first" document. All elements between the records (the "
" text nodes, in this case) are also passed directly to
the merger (these will arrive between the end_document and start_document calls for each of the records), as are all events from the last
record until the end of the input document. This means that the first document, as seen by the merger, is incomplete; it's missing it's
end_element, which is passed later.
The approach of passing events from the input document right on through to the merger differs from the way XML::Filter::Distributor works.
This class is derived from XML::SAX::Base, see that for details.
METHODS
new
my $d = XML::Filter::DocSplitter->new(
Handler => $h,
Aggregator => $a, ## optional
);
set_aggregator
$h->set_aggregator( $a );
Sets the SAX filter that will stitch the resulting subdocuments back together. Set to "undef" to prevent such stitchery.
The aggregator should support the "start_manifold_document", "end_manifold_document", and "set_include_all_roots" methods as described
in XML::Filter::Merger.
get_aggregator
my $a = $h->get_aggregator;
Gets the SAX filter that will stitch the resulting subdocuments back together.
set_split_path
$h->set_split_path( "/a/b/c" );
Sets the pattern to use when splitting the document. Patterns are a tiny little subset of the XPath language:
Pattern Description
======= ===========
/*/* splits the document on children of the root elt (default)
//record splits each <record> elt in to a document
/*/record splits each <record> child of the root elt
/a/b/c/d splits each of the <d> elts in to a document
get_split_path
my $a = $h->get_split_path;
LIMITATIONS
Can only feed a single aggregator at the moment :). I can fix this with a bit of effort.
AUTHOR
Barrie Slaymaker <barries@slaysys.com>
COPYRIGHT
Copyright 2000, Barrie Slaymaker, All Rights Reserved.
You may use this module under the terms of the Artistic, GPL, or the BSD licenses.
perl v5.10.0 2009-09-02 XML::Filter::DocSplitter(3pm)