xml .. und es geht weiter

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Hallo,

ich arbeite mal wieder an meinem xml-tool

inzwischen ist auch schon eine unterstützung für xsd integriert, welches automatisch generierte schemata an unseren editor anpasst.

eine große sache fehlt mir nun aber noch..

meint ihr es ist möglich eine xml-file so zu parsen, dass man rekursive aufrufe finden kann?

mir fällt da zumindest auf die schnelle nix ein..

so long

slide

[edit]

so .. alle anderen funktionalitäten hab ich.. jetzt ist mehr zeit für die rekursion :roll:

ich hab euch mal n stückchen rausgesucht:

Code: Alles auswählen

		<itemizedlist spacing="compact">
			<listitem>
				<link linkend="sl-mdl-3.00097656250000">absbrake</link>
				<!--<itemizedlist spacing="compact">
					<listitem>
						<link linkend="sl-sys-45.00097656250000">run it</link>
					</listitem>
				</itemizedlist>-->
			</listitem>
		</itemizedlist>
wie ihr seht ruft sich das element "itemizedlist" selbst wieder auf..
momentan wird so etwas von hand gesucht *sic* und auch per hand auskommentiert *sicsic*

naja und ausbaden darfs natürlich wieder ich..

kann mir das eigentlich nur so vorstellen

ich suche ein element, speichere zeilennummer, setz n flag .. durchlaufe dann das file bis zur escapesequenz des elements und überprüfe dabei ob das selbe element nochmal vorkommt. danach müsste ich dann zur zeilennummer + 1 zurückkehren und das ganze von vorne

müsste funktionieren oder?

*grml* daheim doch mal wieder in mein algo-buch schaun
How many people can read hex if only you and dead people can read hex?

There are 10 types of people in the world: Those who understand binary, and those who don't...
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

so.. es gibt neuigkeiten...

hab mir nun mal DOM ein wenig angetan..

folgendes ist rausgekommen:

also an nützlichen funktionen hab ich gefunden:

Code: Alles auswählen

node.firstChild
child.nextSibling
node.parentNode
hasChildNodes()
removeChild(childNodes)
da ein xml-baum ja eigentlich entartet ist (wächst ja nur in eine richtung) ist es ziemlich einfach den baum vollständig zu durchlaufen.

man ruft quasi sooft node.firstchild auf bis dies None zurückliefert. dabei wird der zählindex "i" erhöht
(damit bewegt man sich tiefer in den baum)

dann ruft man child.nextSibling auf
erhöht ebenfalls einen zählindex "j"
(damit bewegt man sich seitwärts zum bruderknoten quasi)

dann fängt man von vorne an ...

wenn dann nextSibling auch None liefert
springt man mit parentNode eins hoch .. erniedrigt i setzt j auf 0 und versucht nextSibling.

naja das sollte irgendwann darauf hinauslaufen dass i = 1 und nextSibling NONE liefert.. womit der baum vollständig durchlaufen wäre.

so..

wegen der rekursion.. da müsste ich eigentlich bei jedem element was ich finde .. den tag speichere ich.. und suche dann mit getElementsByTagName() nach diesem tag im unterbaum.. wenn gefunden.. löschen..
danach baum weiter parsen und und und

müsste funktionieren..
How many people can read hex if only you and dead people can read hex?

There are 10 types of people in the world: Those who understand binary, and those who don't...
Antworten