2014-01-08 217 views
3

是否可以選擇沒有特定屬性的元素? 例如,選擇所有沒有href屬性的元素。Jsoup選擇沒有屬性的元素

保持:

<a href="somelink"> 

刪除:

<a name="jumphere"> 

我想:

doc.select("a :not([href])").unwrap(); 
doc.select("a:not([href])").unwrap(); 
doc.select("a [href='']").unwrap(); 

他們都不工作。

編輯:

`doc.select("a:not([href])").unwrap();` actually works!! 
+2

你可以在這裏測試驅動JSoup:http://try.jsoup.org/。你的第二個任期應該工作。爲什麼在這種情況下「解包」? –

+0

是的,你是對的..我不知道當我測試它時,我做錯了什麼..錨可以沒有內部的HTML嗎? (不是說我覺得這很有意義。)打開任何缺點去除?我想這可能會有點低效,因爲它需要檢查孩子,但不應該那麼糟糕。 – cytofu

回答

6

您使用一個額外的()對,你不需要。所以,像這樣做:

doc.select("a").not("[href]").unwrap(); 
+0

nope我不這麼認爲: 無法解析查詢':not [href]' – cytofu

+0

@cytofu我將它改爲'a:not',我不小心留下了一個空間。現在試試。 – hichris123

+0

然後我得到無法解析查詢'a:not [href]' – cytofu

0

我相信你能做到這一點是這樣的:

Elements as = doc.select("a"); 
for(Element element : as) 
{ 
if(element.attr("href").isEmpty() || element.attr("href") == null) 
{ 
    doSomthing(); 
} 
}