# xhtml Dateien splitten via DOM Tree



## DavidRei (1. Jun 2010)

Hallo, ich sitz nun seit ca 2 Wochen an folgendem Problem:
Ich habe ein von mir erstelltes epub, nun darf in dem epub jede xhtml Datei maximal 300kB betragen. Ich soll jede xhtml Datei auf ihre Größe überprüfen und immer bei einer Überschrift (H1, H2, etc) sollte die Datei größer 300kB sein cutten. Das einzige was ich weiss ist dass es die beste Lösung wäre die xhtml Dateien über den DOM Tree zu bearbeiten. Ich hab nur leider nicht den blassesten Schimmer wie ich das anstellen soll. Kann ich da einfach im DOM Tree nach einer H1, etc suchen den bereich rausschneiden und in eine neu erzeugte Datei einfügen oder geht das ganze auch anders.  
mfg David


----------



## oldshoe (6. Jun 2010)

Hmmm...was ist eigentlich ein epub?
Aber mal zur Topic: So richtig verstehe ich das noch nicht.
Nehmen wir mal an wir haben eine xhtml-Datei die größer ist als 300kB. Wird dann vorrausgesetzt, dass da auch wirklich immer Überschriften (H1 usw. ) drin sind?
Also einfach cutten ist kein Problem, aber dann hast du halt mehrere fehlerhafte xhtml dateien, da sich z.B. der body-tag nicht mehr schließt...oder ist das kein Problem? Würde das mit Regex lösen. Einfach nach H-tags mit dem Pattern 
	
	
	
	





```
"<H\\d>.*?</H\\d>"
```
 suchen und dann davor oder danach abschneiden. Also mit dem Pattern die Überschriften extrahieren, dann mit indexOf() die Länge des Strings bis zur Überschrift erkennen und alles davor und danach mit substring als neuen string speichern.

Ich glaub das klingt nicht einfach, ist es aber eigentlich schon. Also frag einfach und/oder poste dein Codebeispiel.


----------



## DavidRei (9. Jun 2010)

Also schwer hört es sich nicht an aber da ich als armer Student vorgeschrieben bekomme wie ich es machen mmuss sind mir da etwas die Hände gebunden :-( 

Und ja, es ist immer eine Hx Überschrift da... naja trotzdem Danke für die Idee


----------

