<commit_before>xsoup
----
XPath selector for Jsoup.

Usage:

```java
    @Test
    public void testSelect() {
        String html = "<html><div><a href='https://github.com'>github.com</a></div></html>";

        Document document = Jsoup.parse(html);

        String result = Xsoup.select(document, "//a/@href").get();
        Assert.assertEquals("https://github.com", result);

        result = Xsoup.compile("//a/@href").evaluate(document).get();
        Assert.assertEquals("https://github.com", result);
    }
```<commit_msg>add performance<commit_after>Xsoup
----
XPath selector for Jsoup.

>Under developing yet!

## Get started:

```java
    @Test
    public void testSelect() {
        String html = "<html><div><a href='https://github.com'>github.com</a></div></html>";

        Document document = Jsoup.parse(html);

        String result = Xsoup.select(document, "//a/@href").get();
        Assert.assertEquals("https://github.com", result);

        result = Xsoup.compile("//a/@href").evaluate(document).get();
        Assert.assertEquals("https://github.com", result);
    }
```

## Performance:

Compare with another XPath selector for HTML [**`HtmlCleaner`**](http://htmlcleaner.sourceforge.net/):

	Normal HTML, size 44KB
	
	XPath: "//a"
	
	CSS Selector: "a"
	
	2000 times

	Environment：Mac Air MD231CH/A 

	CPU: 1.8Ghz Intel Core i5
	


<table>
    <tr>
        <td width="100">Operation</td>
        <td width="100">Jsoup</td>
        <td>HtmlCleaner</td>
    </tr>
    <tr>
        <td>parse</td>
        <td>3207</td>
        <td>7999</td>
    </tr>
    <tr>
        <td>select</td>
        <td>99</td>
        <td>380</td>
    </tr>
</table>
{'fraction_non_alphanumeric': 0.19230769230769232, 'fraction_numerical': 0.018629807692307692, 'mean_word_length': 2.619565217391304, 'pattern_counts': {'":': 0, '<': 41, '<?xml version=': 0, '>': 42, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1708984', 'n_tokens_mistral': 600, 'n_tokens_neox': 548, 'n_words': 108}