2011-07-23 56 views
4

我刚刚发现,设置baseUri对于通过执行select所获得的每个元素都是必需的。如果文档的baseUri适用于每个元素,将会好得多。Jsoup baseUri去掉后选择

Document d = Jsoup.parse(myString); 
doc.setBaseUri("http://www.google.de"); 

如果我执行

Element e = d.select(....).get(0); 

e的基本URI是空的。

这是错误还是针对?

回答

3

基本URI是特定于每个元素的,因为在基本URI可以在整个解析过程中改变的情况下,HTML中存在这样的情况。目前,在解析之后将其设置在文档上并不会将其展开到子节点。

只是specify它如果取从URL的HTML和解析(含Jsoup.connect),基本URI被自动设定当您解析HTML字符串,例如:

Document doc = Jsoup.parse(myString, "http://www.google.de"); 

+1

Afaik您只在head元素内设置baseURI()。我没有从URL中获取HTML。因此,设置文档的baseURI几乎没有用,因为通常在此之后执行选择。 现在请看这是一个功能请求:) – T3rm1

+0

如果你像我建议的那样将它包含在Jsoup.parse(url,baseUri)方法中,它将用作默认值,并且将流向每个元素,除非文档覆盖它。 –