xpath_selector 2.2.4 copy "xpath_selector: ^2.2.4" to clipboard
xpath_selector: ^2.2.4 copied to clipboard

XPath package for HTML and XML, most XPath syntaxs are supported.

xpath_selector #

Pub

An XPath selector for locating Html and Xml elements

English | 简体中文

Easy to use #

You have three ways to do XPath queries


final html = '''<html><div></div></html>''';
final htmlDom = parse(htmlString).documentElement!;
final xml = '''<root><child></child></root>''';
final xmlRoot = XmlDocument
    .parse()
    .rootElement;

// Create by html string
final result1 = XPath.html(html).query('//div');
final result2 = XPath.xml(html).query('//child');

// Or through the dom of the HTML or Xml package
final result3 = XPath.htmlElement(htmlDom).query('//div');
final result4 = XPath.xmlElement(xmlRoot).query('//child');

// Or query directly through element
final result5 = htmlDom.queryXPath('//div');
final result6 = xmlRoot.queryXPath('//child');

// Get all nodes of query results
print(result1.nodes);

// Get the first node of query results
print(result1.node);

// Get all properties of query results
print(result1.attrs);

// Get the first valid property of the query result (not null)
print(result1.attr);

More examples can be referred to Xml | Html

Custom parser #

This package uses html and xml as the default parsing package

If you want to use another parsing package (such as universal_html), Please refer to HtmlNodeTree create your own model.

Extended syntax #

In the attribute selector, the parser extends the following attribute selector in CSS style

Expression Css Description
[@attr='value'] [attr="value"] Selects all elements with attr="value"
[@attr~='value'] [attr~="value"] Selects all elements attribute containing the word "value"
[@attr^='value'] [attr^="value"] Selects all elements whose attr attribute value begins with "value"
[@attr$='value'] [attr$="value"] Selects all elements whose attr attribute value ends with "value"
[@attr*='value'] [attr*="value"] Selects all elements whose attr attribute value contains the substring "value"

Breaking changes #

1.x => 2.0 #

  1. Remove classXPathElement, which merge toXPathNode
  2. In XPathResult, elements=>nodes, elements=>element

##Hint

  • When parsing HTML, some nonstandard structures may change. For example, the missing tbody table will be added, which may lead to query problems.
11
likes
130
points
3k
downloads

Publisher

verified publisherz31.ink

Weekly Downloads

XPath package for HTML and XML, most XPath syntaxs are supported.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

expressions, html, xml

More

Packages that depend on xpath_selector