Hallo Forum,
habe eine xml-basierte Datei die in eine andere Struktur umgeformt und gefiltert werden soll. Ansich ein Fall für xslt - leider bin ich mit xml und xslt noch nicht vertraut genug,d ass es mir gelingen mag.
Folgende Bsp-xml soll umgewandelt werden:
Als Resultat der Umformung möchte ich eine xml-Datei die
1. alle <line/> mit 2 oder mehr <pt/> hat (das geht gut mit <xsl:if test="count(nd)>=2">) UND
2. alle <point/> die von <pt ref="#"> referenziert werden und Bedingung 1. erfüllen => und da steig ich irgendwie aus.
Das Resultat soll also etwa so aussehen (leider hat die Originaldatei etwa 1GB!):
=> <line id="2"> ist rausgeflogen, da zu wenig <pt/>
=> <point id="4 und 6"> sind rausgeflogen, da nicht mehr referenziert
Irgendwelche Hinweise?
habe eine xml-basierte Datei die in eine andere Struktur umgeformt und gefiltert werden soll. Ansich ein Fall für xslt - leider bin ich mit xml und xslt noch nicht vertraut genug,d ass es mir gelingen mag.
Folgende Bsp-xml soll umgewandelt werden:
Code:
<?xml version='1.0' encoding='UTF-8'?> <test> <point id="1" a="11" b="111"> <tag k="name" v="a"/> <tag k="name2" v="a2"/> </point> <point id="2" a="22" b="222"> <tag k="name" v="b"/> <tag k="adr" v="fun"/> </point> <point id="3" a="33" b="333"/> <point id="4" a="44" b="444"/> <point id="5" a="55" b="555"/> <point id="6" a="66" b="666"/> <line id="1" A="1111" B="11111"> <pt ref="1"/> <pt ref="2"/> <pt ref="3"/> <tag k="rest" v="5"/> <tag k="abx" v="finish"/> </line> <line id="2" A="2222" B="22222"> <nd ref="5"/> <tag k="hun" v="trips"/> </line> <line id="3" A="333" B="33333"> <nd ref="2"/> <nd ref="5"/> <tag k="all" v="56"/> </line> </test>
1. alle <line/> mit 2 oder mehr <pt/> hat (das geht gut mit <xsl:if test="count(nd)>=2">) UND
2. alle <point/> die von <pt ref="#"> referenziert werden und Bedingung 1. erfüllen => und da steig ich irgendwie aus.
Das Resultat soll also etwa so aussehen (leider hat die Originaldatei etwa 1GB!):
Code:
<?xml version='1.0' encoding='UTF-8'?> <test> <point id="1" a="11" b="111"> <tag k="name" v="a"/> <tag k="name2" v="a2"/> </point> <point id="2" a="22" b="222"> <tag k="name" v="b"/> <tag k="adr" v="fun"/> </point> <point id="3" a="33" b="333"/> <point id="5" a="55" b="555"/> <line id="1" A="1111" B="11111"> <pt ref="1"/> <pt ref="2"/> <pt ref="3"/> <tag k="rest" v="5"/> <tag k="abx" v="finish"/> </line> <line id="3" A="333" B="33333"> <nd ref="2"/> <nd ref="5"/> <tag k="all" v="56"/> </line> </test>
=> <point id="4 und 6"> sind rausgeflogen, da nicht mehr referenziert
Irgendwelche Hinweise?
Comment