XML::LibXML::QuerySelector - add querySelector and querySelectorAll methods to XML::LibXML nodes
use XML::LibXML::QuerySelector; my $document = XML::LibXML->load_xml(location => 'my.xhtml'); my $warning = $document->querySelector('p.warning strong'); print $warning->toString if defined $warning;
This module defines a class (it has no constructor so perhaps closer to an abstract class or a role) XML::LibXML::QuerySelector, and sets itself up as a superclass (not a subclass) of XML::LibXML::Document, XML::LibXML::DocumentFragment and XML::LibXML::Element, thus making its methods available to objects of those classes.
Yes, this is effectively monkey-patching, but it's performed in a relatively safe manner.
The methods provided by this module are defined in the W3C Recomendation "Selectors API Level 1" http://www.w3.org/TR/selectors-api/.
querySelector($selector)
Given a CSS selector, returns the first match or undef if there are no matches.
querySelectorAll($selector)
Given a CSS selector, returns all matches as a list, or if called in scalar context, as an XML::LibXML::NodeList.
When called on an element, querySelectorAll returns a static node list; not a live node list. (Called on a document or document fragment, it will return a live node list as specified in the W3C Recommendation.)
querySelectorAll
Use on mixed-namespace documents is largely untested. The module is mostly intended for use with XHTML and HTML documents.
Please report any bugs to http://rt.cpan.org/Dist/Display.html?Queue=XML-LibXML-QuerySelector.
Consider adding HTML5 DOM traversal methods including getElementsByClassName.
getElementsByClassName
HTML::Selector::XPath, XML::LibXML.
http://www.w3.org/TR/selectors-api/.
Toby Inkster <tobyink@cpan.org>.
Tatsuhiko Miyagawa and Max Maischein, for HTML::Selector::XPath, and for resolving https://rt.cpan.org/Ticket/Display.html?id=73719 quickly.
This software is copyright (c) 2012-2013 by Toby Inkster.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
To install XML::LibXML::QuerySelector, copy and paste the appropriate command in to your terminal.
cpanm
cpanm XML::LibXML::QuerySelector
CPAN shell
perl -MCPAN -e shell install XML::LibXML::QuerySelector
For more information on module installation, please visit the detailed CPAN module installation guide.