2016-07-11 9 views
1

verwenden. Ich habe eine Aufgabe zu überprüfen, ob zwei HTML-Tags die gleiche Bedeutung haben. wie die zwei unten: Obwohl die Attribute selbst in unterschiedlicher Reihenfolge erscheinen, werden sie als die gleiche Bedeutung ausgedrückt, so dass sie als gleich klassifiziert werden sollten.Überprüfen Sie, ob zwei HTML-Tags die gleichen Attribute in unterschiedlicher Reihenfolge enthalten, indem Sie Java

Eine weitere knifflige Sache ist, dass die Attribute unter style attribute in der gleichen Situation sind: andere Reihenfolge, aber gleiche Bedeutung.

<div class="d1" style="color:#0000FF; width:200px"> 
<div style="width:200px; color:#0000FF" class="d1"> 

Die Methode, die ich denken kann, ist für jeden Push jedes Attribut von ihnen in ein Array und es sortieren, und prüfen Sie, ob die Arrays gleich sind, aber wie kann ich mit dieser „verschachtelten“ -Attribut beschäftigen. Ich kann einfach keine praktikable Lösung dafür finden.

Wie kann ich das tun? Gibt es spezielle Datenstrukturen und Algorithmen, mit denen ich das angehen kann? Gibt es Bibliotheken, die ich benutzen kann?

+0

Dies ist eine ziemlich breite Frage und es scheint, als ob keine Forschung durchgeführt wurde. –

+0

Analysiere die Attribute, setze sie in 'Set' Objekte und vergleiche sie mit' equals() '. –

+0

Sie könnten für einen HTML-Parser gehen, sehen Sie dies [Frage] (http://stackoverflow.com/questions/35058229/jsoup-parse-html-tag-by-tag), wenn Sie nicht bereits haben. – 36ve

Antwort

0

Das Angeben der Attribute in einem Array scheint der richtige Aufruf zu sein. Was die "verschachtelten" Attribute betrifft, versuchen Sie es mit der Split-String-Methode ';' als Trennzeichen.

Etwas wie:

String css = "color:#0000FF; width:200px"; 
String[] elems = css.split(";"); 
for(String elem: elems){ 
    System.out.println(elem); 
} 

würde die Ausgabe ergeben:

color:#0000FF 
width:200px 

Sobald Sie die CSS in einem eigenen Array hatte man es mit dem gleichen Algorithmus vergleichen könnte, die sortiert und vergleicht den Rest die Elemente.

Verwandte Themen