10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi Forum.
I have an XML file with the following requirement to move the <AdditionalAccountHolders> tag and its content right after the <accountHolderName> tag within the same file but I'm not sure how to accomplish this through a Unix script.
Any feedback will be greatly appreciated.
... (19 Replies)
Discussion started by: pchang
19 Replies
2. Shell Programming and Scripting
I want to basically do the below thing. Suppose there is a tag called object1. I want to display an output for all similar tag values under heading of Object 1 and the count of the xmls. Please help
File:
<xml><object1>house</object1><object2>child</object2>... (9 Replies)
Discussion started by: srkmish
9 Replies
3. Shell Programming and Scripting
I have a shell script that does everything I need it to do. But, when I was testing it I realized it doesn't print the closing XML tag.... Does anyone know how to incorporate printing the XML tag with my script? I am using AWK any help would be appreciated. (4 Replies)
Discussion started by: risarose87
4 Replies
4. Shell Programming and Scripting
Hi Guys
Here is my Input :
<?xml version="1.0" encoding="UTF-8"?>
<xn:MeContext id="01736">
<xn:VsDataContainer id="01736">
<xn:attributes>
<xn:vsDataType>vsDataMeContext</xn:vsDataType>
... (12 Replies)
Discussion started by: pareshkp
12 Replies
5. Shell Programming and Scripting
Hi All
Need some help with a unix shell script. I have a XML file as shown below:
<Root>
<Service>
<endPoint type="SOAP" protocol="http">
<provider>ABCD</provider>
<urlRewrite>/service/xyz/getAccountDetails</urlRewrite>
<timeout>30</timeout>
</endPoint>
</Service>
<Service>
<endPoint... (3 Replies)
Discussion started by: abhilwa
3 Replies
6. Shell Programming and Scripting
Hi All,
My name is Prathyu and I am working as a ETL develper. I have one requirement to create a XML file based on the provided XSD file. As per the Datastage standards Key(repeatable) field does not contain any Null values so I am inserting some dummy tag line to that XML file.
... (14 Replies)
Discussion started by: Prathyu
14 Replies
7. Shell Programming and Scripting
I have an XML tag like this:
<property name="agent" value="/var/tmp/root/eclipse" />
Is there way using awk that i can get the value from the above tag. So the output should be:
/var/tmp/root/eclipse
Help will be appreciated.
Regards,
Adi (6 Replies)
Discussion started by: asirohi
6 Replies
8. Shell Programming and Scripting
Hi All,
Find the following code:
<Universal>D38x82j1JJ
</Universal>
I want to retrieve the value of <Universal> tag as below:
Please help me. (3 Replies)
Discussion started by: mjavalkar
3 Replies
9. Shell Programming and Scripting
I have existing XML file as below, now based on input string in shell script on workordercode i need to create a seprate xml file
for e.g if we pass the input string as 184851 then it find the tag data from <workOrder>..</workOrder> and write to a new file and similarly next time if i pass the... (3 Replies)
Discussion started by: balrajg
3 Replies
10. Shell Programming and Scripting
Hi All,
I am new to Unix I need a KSH script to get the values from XML file to write to a temp file.
Like the requirement is from the below TAG
<MAPPING DESCRIPTION ="Test Mapping" ISVALID ="YES" NAME ="m_test_xml" OBJECTVERSION ="1" VERSIONNUMBER ="1">
I need the MAPPING DESCRIPTION... (3 Replies)
Discussion started by: perlamohan
3 Replies
SAX(3) User Contributed Perl Documentation SAX(3)
NAME
XML::SAX - Simple API for XML
SYNOPSIS
use XML::SAX;
# get a list of known parsers
my $parsers = XML::SAX->parsers();
# add/update a parser
XML::SAX->add_parser(q(XML::SAX::PurePerl));
# remove parser
XML::SAX->remove_parser(q(XML::SAX::Foodelberry));
# save parsers
XML::SAX->save_parsers();
DESCRIPTION
XML::SAX is a SAX parser access API for Perl. It includes classes and APIs required for implementing SAX drivers, along with a factory
class for returning any SAX parser installed on the user's system.
USING A SAX2 PARSER
The factory class is XML::SAX::ParserFactory. Please see the documentation of that module for how to instantiate a SAX parser:
XML::SAX::ParserFactory. However if you don't want to load up another manual page, here's a short synopsis:
use XML::SAX::ParserFactory;
use XML::SAX::XYZHandler;
my $handler = XML::SAX::XYZHandler->new();
my $p = XML::SAX::ParserFactory->parser(Handler => $handler);
$p->parse_uri("foo.xml");
# or $p->parse_string("<foo/>") or $p->parse_file($fh);
This will automatically load a SAX2 parser (defaulting to XML::SAX::PurePerl if no others are found) and return it to you.
In order to learn how to use SAX to parse XML, you will need to read XML::SAX::Intro and for reference, XML::SAX::Specification.
WRITING A SAX2 PARSER
The first thing to remember in writing a SAX2 parser is to subclass XML::SAX::Base. This will make your life infinitely easier, by
providing a number of methods automagically for you. See XML::SAX::Base for more details.
When writing a SAX2 parser that is compatible with XML::SAX, you need to inform XML::SAX of the presence of that driver when you install
it. In order to do that, XML::SAX contains methods for saving the fact that the parser exists on your system to a "INI" file, which is
then loaded to determine which parsers are installed.
The best way to do this is to follow these rules:
o Add XML::SAX as a prerequisite in Makefile.PL:
WriteMakefile(
...
PREREQ_PM => { 'XML::SAX' => 0 },
...
);
Alternatively you may wish to check for it in other ways that will cause more than just a warning.
o Add the following code snippet to your Makefile.PL:
sub MY::install {
package MY;
my $script = shift->SUPER::install(@_);
if (ExtUtils::MakeMaker::prompt(
"Do you want to modify ParserDetails.ini?", 'Y')
=~ /^y/i) {
$script =~ s/install :: (.*)$/install :: $1 install_sax_driver/m;
$script .= <<"INSTALL";
install_sax_driver :
@$(PERL) -MXML::SAX -e "XML::SAX->add_parser(q($(NAME)))->save_parsers()"
INSTALL
}
return $script;
}
Note that you should check the output of this - $(NAME) will use the name of your distribution, which may not be exactly what you
want. For example XML::LibXML has a driver called XML::LibXML::SAX::Generator, which is used in place of $(NAME) in the above.
o Add an XML::SAX test:
A test file should be added to your t/ directory containing something like the following:
use Test;
BEGIN { plan tests => 3 }
use XML::SAX;
use XML::SAX::PurePerl::DebugHandler;
XML::SAX->add_parser(q(XML::SAX::MyDriver));
local $XML::SAX::ParserPackage = 'XML::SAX::MyDriver';
eval {
my $handler = XML::SAX::PurePerl::DebugHandler->new();
ok($handler);
my $parser = XML::SAX::ParserFactory->parser(Handler => $handler);
ok($parser);
ok($parser->isa('XML::SAX::MyDriver');
$parser->parse_string("<tag/>");
ok($handler->{seen}{start_element});
};
EXPORTS
By default, XML::SAX exports nothing into the caller's namespace. However you can request the symbols "Namespaces" and "Validation" which
are the URIs for those features, allowing an easier way to request those features via ParserFactory:
use XML::SAX qw(Namespaces Validation);
my $factory = XML::SAX::ParserFactory->new();
$factory->require_feature(Namespaces);
$factory->require_feature(Validation);
my $parser = $factory->parser();
AUTHOR
Current maintainer: Grant McLean, grantm@cpan.org
Originally written by:
Matt Sergeant, matt@sergeant.org
Kip Hampton, khampton@totalcinema.com
Robin Berjon, robin@knowscape.com
LICENSE
This is free software, you may use it and distribute it under the same terms as Perl itself.
SEE ALSO
XML::SAX::Base for writing SAX Filters and Parsers
XML::SAX::PurePerl for an XML parser written in 100% pure perl.
XML::SAX::Exception for details on exception handling
perl v5.16.3 2011-09-04 SAX(3)