我想知道这样的选择语句是否有效:
elements = document.body().select("[data-custom-attr=blahblah]");
JSoup 是否为所有元素属性和值创建了一个 Map 以便它可以有效地查找它们,或者这是否会涉及整个文档的遍历?
最佳答案
是的,属性似乎存储在 LinkedHashMap
中截至 v1.7.2 .
org.jsoup.nodes.Attributes:
line 20: private LinkedHashMap<String, Attribute> attributes = null;
line 21: // linked hash map to preserve insertion order.
line 22: // null be default as so many elements have no attributes -- saves a good chunk of memory
如果我没有告诉你一个好的 API 应该从程序员那里抽象出实现细节,那我就失职了。像这样的细节不应该是大多数开发人员关心的事情。当然,如果只是为了好奇,也没什么坏处。
关于jsoup - 通过自定义属性查找元素是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6835396/