2012-12-04 3 views
8

IJsoup wie einen Tag mit mehrere auszuwählen Attributen

<table width="100%" align="center"/> 

Und bisher Jsoup bietet

Document document =Jsoup.parse(htmlString); 
document.select("table[width=100%],table[align=center]"); 

Und das ist OR comination dh eine Tabelle Tag hat, wenn ein Element übereinstimmt, dann ist besiedeltes . Um Tabelle mit width = 100% auszuwählen und align = center I folgende

Elements element =document.select("table[align=center]"); 
element =element.select("table[width=100%]"); 

So getan haben, was ich frage, dass genau wie diese ODER-Verknüpfung

document.select("table[width=100%],table[align=center]"); 

jeder gibt und Kombination Wähler = Tisch mit Breite = 100% und Ausrichtung = Mitte. Vielen Dank im Voraus

Antwort

18

Sie können ein erreichen und mit einer Abfrage durch Zugabe mehr Begriffe zum Selektor. In diesem Beispiel:

Elements tables = document.select("table[width=100%][align=center]"); 

funktioniert.

Sie können weitere Begriffe hinzufügen, um sie so genau wie erforderlich zu machen, z. table[width=100%][align=center]:contains(text)

+2

Ja, das ist die richtige Antwort und Sie können dies auf [link] (https : //github.com/jhy/jsoup/issues/269) – laaptu

+0

Ich habe das versucht, aber es hat die Ergebnisse nur verdreifacht (wie ein OR) anstelle von UND 'Elemente appURIEelements = doc.select (" a [class = card-click- Ziel] [aria-hidden = wahr] [tabindex = -1] ");' – behelit

3

Im Moment (Jsoup 1.7.1) gibt es keine UND für Selektor verfügbar. Aber man kann mit zwei select() ist dies zu tun (wie in Ihrem Beispiel # 2):

Elements tables = document.select("table[width=100%]").select("table[align=center]"); 

Sie können auch eine Feature-Anfrage schreiben: https://github.com/jhy/jsoup/issues

+0

Vielen Dank für die Antwort.Ich wusste nicht, dass diese Funktion verfügbar ist, und ich werde es sicherlich als eine Anfrage-Funktion und seit Double Select ist jetzt die richtige Möglichkeit, ein Tag mit mehreren Attribut, ich Markieren Sie es als eine richtige Antwort für jetzt – laaptu

+0

Ich meine nicht verfügbar statt verfügbar – laaptu

+0

Ja, und-Selektor wäre eine nette Funktion. – ollo