» »

[XSLT] Združevanje XML datotek

[XSLT] Združevanje XML datotek

mov ax 0x7c0 ::

Pozdrav!

Malo se mi je zataknilo. In bi rabil majhen nasvet... Torej imam x XML datotek, ki so relativno velike.
Vsebina vsake zgleda nekako takole:
<nodes>
  <node Id="000095">
    <Id>000095</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
  </node>
  <node Id="000096">
    <Id>000096</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
  </node>
</nodes>


Z razliko med datotekami ki imajo sub node noda "node Id="000095"" različne npr.:
datoteka1:
  <node Id="000095">
    <Id>000095</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
  </node>
  <node Id="000096">
    <Id>000096</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
  </node>

datoteka2:
  <node Id="000095">
    <Id>000095</Id>
    <nodez>0</nodez>
    <nodef>a</nodef>
  </node>
  <node Id="000096">
    <Id>000096</Id>
    <nodez>0</nodez>
    <nodef>a</nodef>
  </node>

itd.



Torej ker so datotke relativno velike sem poizkusil z xsl transformacijo.. vendar mi to dela kar težave. Če ima kdo kak predlog kako zgoraj navedene oblike XML datoteke spraviti v eno XML datoteko v obliki:
<nodes>
  <node Id="000095">
    <Id>000095</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
    <nodez>0</nodez>
    <nodef>a</nodef>
  </node>
  <node Id="000096">
    <Id>000096</Id>
    <nodex>1</nodex>
    <nodey>1</nodey>
    <nodez>0</nodez>
    <nodef>a</nodef>
  </node>
</nodes>


Prosim za vsak nasvet!

Hvala in LP, Slavko
Vsak dan nekaj novega :)

krneki0001 ::

Jst bi to programsko naredil. Recimo z Ruby-jem. Uporabl pa bi rexml knjižnico.

Program pa naj bi delal nekak takole. 3 datoteke, odpreš prvo in prebereš node z id-jem 0 v prvi datoteki, ga prepišeše v tretjo prazno in prepišeš vrstice do naslednjega nodap, odpreš drugo datoteko in poiščeč isti node, pa prepišeš iz nje vse do naslednjega noda v tretjo datoteko in to ponavljaš do konca prve datoteke.

Tak program se v Ruby-ju napiše v 10ih minutah ali še prej. Imam pa nekaj podonega narejeno, samo je za flat datoteke, ko smo moral nekaj na hitro uredit.

#!/usr/bin/env ruby -w
begin
branje  = File.open("./datoteka1.txt", "r")
pisanje = File.open("./datoteka3.txt", "w")
while (line = branje.gets)
	#dodaš svojo kodo
	if node ==
		pisanje.puts ...
	end
	branje1  = File.open("./datoteka2.txt", "r")
	while (line1 = branje1.gets)
		#dodaš svojo kodo
		if node ==
			pisanje.puts ...
		end
	end
end
branje.close
branje1.close
pisanje.close

Akhna ::

Pozdrav,
Jaz sem nekaj programiral v Visual Basicu C# in sem zapisoval in bral datoteke v xml formatu in podatke shranil kot List v programu. Ko sem končal z vnosom podatkov sem samo shranil pod drugo ime in tako združil ali pa dodal podatke novi datoteki, kot je že nebivedu nakazal v prejšnem postu. Pri C# je podpora XML-ja dobra in če delaš z njim boš imel veliko podpore.

Lp Akhna


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

kopiranje dela teksta iz večih datotek

Oddelek: Programska oprema
10811 (652) kerrigh
»

[C#] Deserializacija

Oddelek: Programiranje
181858 (1461) Cvenemir
»

c++ Branje dolocene vrstica iz .txt-ja

Oddelek: Programiranje
281671 (1410) technolog
»

[c] Enaki datoteki

Oddelek: Programiranje
71030 (890) Spura
»

[visual basic 05] - kreiranje datoteke in pisanje vanjo

Oddelek: Programiranje
111506 (1302) gzibret

Več podobnih tem