If you don't mind me suggesting an alternative module or approach to tackle your question, consider learning XPath if you are serious about parsing complicated XML documents (of course the XML document must be a valid one). This is because XPath allows you to condense a moderately complex set of matching criteria into a string that succinctly specifies what you are looking for.
I recommend LibXML for parsing. It is fast with demonstrated accuracy and good conformance to specifications, that is comparable to many famous Java ones (say, Xerces J), and I consider that's practically the only one that is good enough for use from within Perl. Of course, you must install the module and LibXML first (on many Linux system for instance precompiled packages are shipped with most distributions):
I saved your document provided as test.xml and the following 5 lines of code directly gives me "ORCL". To save time I omitted all error checking code but please don't mimic for anything more productional:
I am very new to XML. Really I have an excel file that I am trying to read w/ Perl on a Linux machine. I don't have a mod for reading excel files so I have to convert the excel file to xml to be able to read it. I can read the file and everything is ok except...the Number style is being dropped... (0 Replies)
Hello
I want to write an xml- parser with perl an i use the libary XML::LibXML.
I have a problem with the command getElementsByTagName.
If there is an empty tag, the getElementsByTagName method returns a NodeList of length zero.
how can i check if this is a nodelist of lenght zero??
i... (1 Reply)
Hello.
Can anybody help me with some sub on perl that can parse config like this:
%CFG (
'databases' => {
'db1' => 'db_11', 'db_12', 'db_13',
'db2' => 'db_21', 'db_22', 'db_23'
}
'datafiles' => {
'datadir1' => 'datadir_11', 'datadir_12',
'datadir2' =>... (4 Replies)
Hi,
My requirement is like this. I have an XML file which needs to be converted to Tuxedo UD files(param name and param value). Does anybody have a sample perl xml parser script for this? (0 Replies)
HI,
I have XML file which is having values as Spanish character (UTF-8 encoding). I am using XML::parser module but my code is not able to read those characters. I did goggling but not able to find suitable solution. Anybody please help me out.
XML file having characters like: ñ
I am... (1 Reply)
Q: Where to get a 64 bit Expat.so?
I run a perl script and got this error:
Can't load '/usr/perl5/vendor_perl/5.8.4/i86pc-solaris-64int/auto/XML/Parser/Expat/Expat.so' for module XML:parser::Expat: ld.so.1:myPerl: fatal:... (0 Replies)
Dear Perl Experts,
Could some body help me to find the solution for my problem below:
Input file:
-----------
THE-0 tsjp
THE-32 tsjp
THE-64 tsjp
Output desired:
---------------
THE-0&&-31 tsjp
THE-32&&-63 tsjp
THE-64&&-95 tsjp
Note:
31 = 0+31, (2 Replies)
I want to use sax parser for my application as i have 5 Lakhs of data.
I have the xml file like this
<Nodes>
<Node>
<NodeName>Company</NodeName>
<File>employee_details.csv</File>
<data>employee_data.txt</data>
<Node>
<NodeName>dummy</NodeName>
... (8 Replies)
Hello forum, I am having problems to write a bash script.
I am trying to get some information from a web page, I want to format it to XMLTV. This is web page: Programación de las cadenas etb1, etb2, etb3, canal vasco y etb sat | EITB Televisión
I want to get something like this:
<programme... (1 Reply)
The below perl code imports the data in the attached document. However, I can not seem to update the perl code to include a parser like in the desired tab of that document. Thank you :).
Most of the data for the parse is included in the document except for the gene and RNA which can is... (0 Replies)
Discussion started by: cmccabe
0 Replies
LEARN ABOUT OSX
xml::libxml::relaxng
XML::LibXML::RelaxNG(3) User Contributed Perl Documentation XML::LibXML::RelaxNG(3)NAME
XML::LibXML::RelaxNG - RelaxNG Schema Validation
SYNOPSIS
use XML::LibXML;
$doc = XML::LibXML->new->parse_file($url);
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url );
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring );
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );
eval { $rngschema->validate( $doc ); };
DESCRIPTION
The XML::LibXML::RelaxNG class is a tiny frontend to libxml2's RelaxNG implementation. Currently it supports only schema parsing and
document validation.
METHODS
new
$rngschema = XML::LibXML::RelaxNG->new( location => $filename_or_url );
$rngschema = XML::LibXML::RelaxNG->new( string => $xmlschemastring );
$rngschema = XML::LibXML::RelaxNG->new( DOM => $doc );
The constructor of XML::LibXML::RelaxNG may get called with either one of three parameters. The parameter tells the class from which
source it should generate a validation schema. It is important, that each schema only have a single source.
The location parameter allows to parse a schema from the filesystem or a URL.
The string parameter will parse the schema from the given XML string.
The DOM parameter allows to parse the schema from a pre-parsed XML::LibXML::Document.
Note that the constructor will die() if the schema does not meed the constraints of the RelaxNG specification.
validate
eval { $rngschema->validate( $doc ); };
This function allows to validate a (parsed) document against the given RelaxNG schema. The argument of this function should be an
XML::LibXML::Document object. If this function succeeds, it will return 0, otherwise it will die() and report the errors found. Because
of this validate() should be always evaluated.
AUTHORS
Matt Sergeant, Christian Glahn, Petr Pajas
VERSION
2.0008
COPYRIGHT
2001-2007, AxKit.com Ltd.
2002-2006, Christian Glahn.
2006-2009, Petr Pajas.
perl v5.16.2 2012-10-22 XML::LibXML::RelaxNG(3)