我知道我们可以通过使用:
doc.select("div.myclass > p,h2"); // select p or h2 inside myclass
但我如何选择这样的东西:
doc.select("div.myclass > p, h2" || "div.myclass > p > a");// this is a fake function
我想在myclass内部同时选择(p,h2)和(p>a)
如果我只用
doc.select("div.myclass > p");
我无法获得内部p的内容。
我怎么能那样做?
您假设doc.select(“div.myclass>p,h2”);
将只选择(在p元素旁边)h2
元素,这些元素是具有类myclass
的div
的直接子元素,这是不正确的。Jsoup CSS实现中的,
运算符优先于运算符。因此,在您的示例中,它将选择所有h2元素,而不管它在DOM中的什么位置。
String html = ""
+ "<h2>header1</h2>"
+ "<div class=\"myclass\">"
+ "<h2>header2</h2>"
+ " <p>p1</p>"
+ " <div class=\"myclass2\">"
+ " <p>p2</p>"
+ " </div>"
+ "</div>"
;
Document doc = Jsoup.parse(html);
Elements els1 = doc.select("div.myclass > p,h2");
System.out.println(els1+"\n");
Elements els2 = doc.select("div.myclass > p, div.myclass > h2");
System.out.println(els2+"\n");
在上面的示例中,您可以看到ELS1
的输出将包括h2
元素,该元素不是div
的子元素。
要选择div.myclass
中的所有p
元素,即使它们不是直接子元素,也可以使用空格运算符:
Elements ps = doc.select("div.myclass p");
这将产生以下输出,其中包含上面示例中的html:
<p>p2</p>
<p>p3</p>
看看JSoup文档,了解其他可能的运算符的含义。
我在使用JSoup库时遇到了一些问题,特别是在尝试选择标记中的文本时。输出应为“HELLO WORLD” 我本以为doc.select("div.sub"). get(0);会做到这一点,但它不会返回任何东西。有什么方法是我无知地错过的吗? 我的代码: 我正在努力搜集的代码: 有什么想法吗? 谢谢!
问题内容: 我在 单个 查询中执行多个插入操作: 现在假设在查询中指定了成千上万的值(因此省略号)…。 是否可能存在某些情况下VALUES的某些部分设法在数据库中进行了插入/更新,而其余部分却由于某种类型的db错误/故障/内存耗尽等而没有得到插入/更新? mysql查询是全部还是什么? 确实,对于每个执行的mysql查询,查询中指定的所有值都将被平滑地插入/更新,或者没有一个值将被插入/更新? 问
问题陈述:在JPA hibernate中,我执行了一个方法
问题内容: 我想用cakephp进行这样的查询: 这是我的$ conditions代码: 我正在使用Debugger :: dump()方法显示结果,并且结果仅使用最后一个“ OR”条件,而不是同时使用“ OR”条件: 我的问题是,如何进行查询以同时使用“ OR”条件? 请尽快回复..在此先感谢:) 问题答案: 请尝试以下方法: 将是 任何阵列没有指定,或者是。无需手动指定。
我是spring boot新手,需要关于具有多个内部连接的自定义JPA查询的帮助。基本上,我需要将以下SQL查询转换为JPA查询: 下面是代码结构: 公司实体 软件库 认证计数信号I mpl
问题内容: 虽然这两个给我相同的结果,但在内部或外部安装过滤器有什么区别?在表现或幕后动作方面是否有所不同? 问题答案: 在查询中过滤 Elasticsearch将以更有效的方式执行查询和过滤,以减少结果集并尽快获得答案。这称为filtered_query 查询后过滤 首先运行查询, 然后对 结果进行过滤, 然后 再将其返回给客户端。这称为post_filter。 尽管post_filter的效率