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 nodes 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);
Absolute path trigger condition is recommended because a "Name" tag could appear in different places and
stands for different 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.