HTML tags verschieben
Verfasst: Mittwoch 4. September 2013, 22:04
Hallo miteinander
Wie kann man (am liebsten mit lxml oder einer String-Funktion) Tags in einem html-file verschieben?
Konkret geht es darum, Tags wie "<span style=" letter-spacing:0.40pt;">" (wobei 0.40pt variabel ist), die nach den <b> stehen, vor die <b>-tags zu bringen.
Beispiel: Wenn ich sowas als Ausgangslage habe:
Dann hätte ich gerne folgenden Output:
Wenn beim ersten <b> bereits eine "letter-spacing"-Angabe vorhanden ist, muss natürlich nicht noch eine dorthin verschoben werden. Beispiel:
sollte resultieren in:
Wie könnte man das bewerkstelligen?
Ich dachte an etwas wie folgendes:
Nur leider funktioniert das noch nicht ganz so wie gewünscht...
Besten Dank für jeden Tipp!
Wie kann man (am liebsten mit lxml oder einer String-Funktion) Tags in einem html-file verschieben?
Konkret geht es darum, Tags wie "<span style=" letter-spacing:0.40pt;">" (wobei 0.40pt variabel ist), die nach den <b> stehen, vor die <b>-tags zu bringen.
Beispiel: Wenn ich sowas als Ausgangslage habe:
Code: Alles auswählen
<b>TEXT1 </b><b>TEXT2 </b><b>TEXT3 </b><b>TEXT4</b><span style=" letter-spacing:0.45pt;"></span><span style=" letter-spacing:5.55pt;"></span></span></div>Code: Alles auswählen
<span style=" letter-spacing:0.45pt;"><b>TEXT1 </b></span><b>TEXT2 </b><span style=" letter-spacing:5.55pt;"><b>TEXT3 </b></span><b>TEXT4</b></span></div>Code: Alles auswählen
<span class="font48" style=" line-height:8.16pt; letter-spacing:0.40pt;"><b>TEXT1 </b><b>...... </b><b>TEXT2</b><span style=" letter-spacing:0.00pt;"></span><span style=" letter-spacing:0.10pt;"></span></span></div>Code: Alles auswählen
<span class="font48" style=" line-height:8.16pt; letter-spacing:0.40pt;"><b>TEXT1 </b><span style=" letter-spacing:0.00pt;"><b>...... </b></span></span><span style=" letter-spacing:0.10pt;"><b>TEXT2</b></span></div>Ich dachte an etwas wie folgendes:
Code: Alles auswählen
for item in soup.findAll(['span', 'b']):
if item.name == 'span style':
text = item
if item.name == 'b':
text.insert(len(text.contents), item)Besten Dank für jeden Tipp!