# nicht wohl-geformte XML in wohlgeformte XML umwandeln



## p-flash (15. Mai 2007)

Hi,

kennt jemand ein Tool, das sowas kann? Habe mir schon tidy und tagSoup angeschaut. Das Problem ist, dass diese nach den Regeln von html arbeiten. D.h. Sowas wie *<div>ein Div</div>* ist nicht erlaubt. tagSoup wandelt es um in <div>ein Div</div>. Bei XML-Dateien ist das aber nicht erwünscht.

Bin dankbar für jede Info.

p-flash


----------



## byte (15. Mai 2007)

Wie soll das denn gehn? Eine nicht wohl geformte XML Datei ist kein XML. Und man kann auch nicht aus Stroh Gold machen. 

Es mag sein, dass es Tools gibt, die einfache Syntaxfehler selbstständig beheben können oder altes HTML in XHTML umwandeln, aber sonst?

Erklär mal genauer, was Du brauchst!


----------



## p-flash (15. Mai 2007)

Hi,

wenn z.B. ein Root Element fehlt, soll er eingefügt werden, nicht geschlossene Tags sollen automatisch geschlossen werden und sowas wie:

<root>
<knoten1 />
<knoten2 />
freiliegender Text
</root>

soll so umgewandelt werden:

<root>
<knoten1 />
<knoten2 />
<text>freiliegender Text</text>
</root>


(oder wäre es auch ohne der letzten Änderung wohlgeformt?)

Also, eigentlich relativ simple. Also tagSoup ist schon ziemlich gut, es ist halt das problem dass die html-semantik mitberücksichtigt wird.

p-flash


----------



## byte (15. Mai 2007)

Und woher soll ein solches Tool wissen, an welcher Stelle z.B. ein "kaputtes" Tag geschlossen werden soll?

Bei folgendem Beispiel gäbe es drei Stellen, wo man </broken> einfügen könnte:


```
<root>
<broken>
<foo>bar</foo>
<bar>foo</bar>  
</root>
```

Es müsste schon ein XML-Schema gegeben sein, um sowas zu automatisieren.

PS:


			
				p-flash hat gesagt.:
			
		

> (oder wäre es auch ohne der letzten Änderung wohlgeformt?)


Ja, wäre es!


----------



## p-flash (15. Mai 2007)

Ja, da hast du natürlich Recht. Hmm...mal schauen was ich sonst für alternativen habe. Danke.

p-flash


----------



## Ullenboom (19. Mai 2007)

Hallo!

Unter http://www.tutego.com/javabuch/javainsel6/javainsel_13_009.htm#Xxx1000276 habe ich zwei Lösungen kurz vorgestellt. Angenehm ist das bei HTML-Eingaben, die nicht immer so sind, dass man sie ordentlich weiterverarbeiten kann. Für HTML ist das nützlich. Eine Lib konvertiert Gammel-HTML zunächst in XML und dann kann man komfortable XPath-Anfragen nutzen --- so lassen sich sehr leicht Sachen aus Webseiten herausziehen.

Grüße

 Christian


----------

