The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

XML::XPath::Helper::Const - Exports some precompiled xpath constants for XML::LibXML.

VERSION

Version 0.04

SYNOPSIS

   use XML::LibXML;
   use XML::XPath::Helper::Const qw(:all);

   @nodes = $my_node->findnodes(XPATH_SIMPLE_LIST);

DESCRIPTION

This module provides some precompiled XPath expressions (refer to XML::LibXML::XPathExpression for details about this).

The provided constants are:

XPATH_SIMPLE_LIST

Selects the "simple list nodes" contained in the current node; i.e. the nodes that contain at least one child node, all the child nodes have the same name and no child node has child nodes again.

Example:

    my $dom = XML::LibXML->load_xml(string => <<'EOT');
       <root>
         <findthis>
           <entry>a</entry>
           <entry>b</entry>
           <entry>c</entry>
         </findthis>
         <ignorethis>
           <foo>a</foo>
           <bar>b</bar>
         </ignorethis>
         <ignorethat>
           <child>
             <childofchild></childofchild>
           </child>
         </ignorethat>
         <simpletag>blah</simpletag>
       </root>
   EOT
    my @nodes = $dom->documentElement->findnodes(XPATH_SIMPLE_LIST);

Array @nodes contains a single node: <findthis>

XPATH_SIMPLE_TAGS

Find all nodes that have no child nodes.

XPATH_NESTED_TAGS

Find all nodes that have at least one child node.

EXPORT

This modules exports nothing by default. You can export the constants you need individually, or use tag :all to export them all.,

SEE ALSO

XML::LibXML, XML::LibXML::XPathExpression, XML::XPath::Helper::String

AUTHOR

Abdul al Hazred, <451 at gmx.eu>

BUGS

Please report any bugs or feature requests to bug-xml-xpath-helper-const at rt.cpan.org, or through the web interface at https://rt.cpan.org/NoAuth/ReportBug.html?Queue=XML-XPath-Helper-Const. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc XML::XPath::Helper::Const

You can also look for information at:

ACKNOWLEDGEMENTS

The XPath expression for XPATH_SIMPLE_LIST is taken from here: https://stackoverflow.com/questions/75059177/is-it-possible-to-find-nodes-containing-a-simple-list-using-xpath-1-0/75061420#75061420. Thanks to Michael Kay who posted this solution.

LICENSE AND COPYRIGHT

This software is copyright (c) 2023 by Abdul al Hazred.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.