XML::Node.3pm

Langue: en

Autres versions - même langue

Version: 2001-12-11 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

XML::Node - Node-based XML parsing: an simplified interface to XML::Parser

SYNOPSIS

  use XML::Node;
 
  $xml_node = new XML::Node;
  $xml_node->register( $nodetype, $callback_type => \&callback_function );
  $xml_node->register( $nodetype, $callback_type => \$variable );
     
  open(FOO, 'xmlgenerator |');
  $p3->parse(*FOO);
  close(FOO);
 
  $xml_node->parsefile( $xml_filename );
 
 

DESCRIPTION

If you are only interested in processing certain nodes in an XML file, this module can help you simplify your Perl scripts significantly.

The XML::Node module allows you to register callback functions or variables for any XML node. If you register a call back function, it will be called when the node of the type you specified are encountered. If you register a variable, the content of a XML node will be appended to that variable automatically.

Subroutine register accepts both absolute and relative node registrations.

Here is an example of absolute path registration:

  1. register(">TestCase>Name", "start" => \&handle_TestCase_Name_start);
 
 

Here are examples of single node name registration:

  2. register( "Name", "start" => \&handle_Name_start);
  3. register( "Name", "end"   => \&handle_Name_end);
  4. register( "Name", "char"  => \&handle_Name_char);
 
 

Here is an example of attribute registration:

  5. register(">TestCase:Author", "attr" => \$testcase_author);
 
 

Abosolute path trigger condition is recommended because a ``Name'' tage could appear in different places and stands for differe names.

Example:

   1  <Testcase>
   2     <Name>Something</Name>
   3     <Oracle>
   4         <Name>Something</Name>
   5     </Oracle>
   6  </Testcase>
 
 

Statement 1 causes &handle_TestCase_Name_start to be called when parsing Line 2. Statements 2,3,4 cause the three handler subroutines to be called when parsing both Line 2 and Line 4.

This module uses XML::Parser.

EXAMPLE

Examples ``test.pl'' and ``parse_orders.pl'' come with this perl module.

SEE ALSO

XML::Parser

NOTE

When you register a variable, XML::Node appends strings found to that variable. So please be sure to clear that variable before it is used again.

AUTHORS

Chang Liu <liu@ics.uci.edu>

LAST MODIFIED

$Date: 2001/12/10 11:38:28 $