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.
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)
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)
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)
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)
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)
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)
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)
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)
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
LEARN ABOUT PHP
xslt_set_sax_handlers
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 processedSYNOPSIS
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)