选择包含斜杠的文本的Jsoup元素

时间:2015-05-22 11:54:36

标签: java jsoup

我尝试使用以下代码在其自己的文本中选择包含斜杠的标记

Document testDocument = Jsoup.parse("<p>wanted \\ text test</p>");
Elements els = testDocument.select("p:containsOwn(wanted \\)");
Elements els2 = testDocument.select("p:contains(wanted \\)");

当我使用p:contains(wanted)时,会返回p标记,但是当我将斜杠添加到结尾时,不会返回任何内容。

1 个答案:

答案 0 :(得分:0)

实际上,您在Java代码中定义了testDocument

Document testDocument = Jsoup.parse("<p>wanted \\ text test</p>");//if you print this, <p>wanted \\ text test</p>

所以\你使用了第一个反斜杠用于转义,另一个是该字符串<p>wanted \ text test</p>中的实际反斜杠。

但是如果你从一个文件中取出这个<p>wanted \\ text test</p>,那么Java会认为它们是普通字符,因为已经转换了特殊字符。

所以在这里当你试图找到testDocument.select(&#34; p:contains(want \)&#34;)时,实际上不会显示任何文本。

所以最好将反斜杠替换为其他角色并获取文字:

        Document testDocument = Jsoup.parse("<p>wanted \\ text test</p>".replace("\\", "/"));
        Elements els = testDocument.select("p:containsOwn(wanted \\)");
        String x = "wanted /";
        Elements els2 = testDocument.select("p:contains("+x+")");

        System.out.println(els);
        System.out.println(els2);