Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
HTML::Selector::XPath(User Contributed Perl DocumentatHTML::Selector::XPath(3)

NAME
       HTML::Selector::XPath - CSS Selector to XPath compiler

SYNOPSIS
	 use HTML::Selector::XPath;

	 my $selector =	HTML::Selector::XPath->new("li#main");
	 $selector->to_xpath; #	//li[@id='main']

	 # functional interface
	 use HTML::Selector::XPath 'selector_to_xpath';
	 my $xpath = selector_to_xpath('div.foo');

	 my $relative =	selector_to_xpath('div.foo', root => '/html/body/p' );
	 # /html/body/p/div[contains(concat(' ', @class, ' '), ' foo ')]

	 my $relative =	selector_to_xpath('div:root', root => '/html/body/p' );
	 # /html/body/p/div

DESCRIPTION
       HTML::Selector::XPath is	a utility function to compile full set of CSS2
       and partial CSS3	selectors to the equivalent XPath expression.

FUNCTIONS and METHODS
       selector_to_xpath
	     $xpath = selector_to_xpath($selector, %options);

	   Shortcut for	"HTML::Selector->new(shift)->to_xpath(@_)". Exported
	   upon	request.

       new
	     $sel = HTML::Selector::XPath->new($selector, %options);

	   Creates a new object.

       to_xpath
	     $xpath = $sel->to_xpath;
	     $xpath = $sel->to_xpath(root => "."); # ./foo instead of //foo

	   Returns the translated XPath	expression. You	can optionally pass
	   "root" parameter, to	specify	which root to start the	expression. It
	   defaults to "/".

	   The optional	"prefix" option	allows you to specify a	namespace
	   prefix for the generated XPath expression.

SUBCLASSING NOTES
       parse_pseudo
	   This	method is called during	xpath construction when	we encounter a
	   pseudo selector (something that begins with comma). It is passed
	   the selector	and a reference	to the string we are parsing. It
	   should return one or	more xpath sub-expressions to add to the parts
	   if the selector is handled, otherwise return	an empty list.

CAVEATS
   CSS SELECTOR	VALIDATION
       This module doesn't validate whether the	original CSS Selector
       expression is valid. For	example,

	 div.123foo

       is an invalid CSS selector (class names should not begin	with numbers),
       but this	module ignores that and	tries to generate an equivalent	XPath
       expression anyway.

COPYRIGHT
       Tatsuhiko Miyagawa 2006-2011

       Max Maischein 2011-

AUTHOR
       Tatsuhiko Miyagawa <miyagawa@bulknews.net>

       Most of the logic is based on Joe Hewitt's getElementsBySelector.js on
       <http://www.joehewitt.com/blog/2006-03-20.php> and Andrew Dupont's
       patch to	Prototype.js on	<http://dev.rubyonrails.org/ticket/5171>, but
       slightly	modified using Aristotle Pegaltzis' CSS	to XPath translation
       table per <http://plasmasturm.org/log/444/>

       Also see

       <http://www.mail-archive.com/www-archive@w3.org/msg00906.html>

       and

       <http://kilianvalkhof.com/2008/css-xhtml/the-css3-not-selector/>

LICENSE
       This library is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       <http://www.w3.org/TR/REC-CSS2/selector.html>
       <http://use.perl.org/~miyagawa/journal/31090>

perl v5.32.0			  2016-09-23	      HTML::Selector::XPath(3)

NAME | SYNOPSIS | DESCRIPTION | FUNCTIONS and METHODS | SUBCLASSING NOTES | CAVEATS | COPYRIGHT | AUTHOR | LICENSE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=HTML::Selector::XPath&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help