🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

4 total messages Started by Juzek Kocimientka Fri, 02 May 2008 20:11
Czy się w ogóle da...
#9860
Author: Juzek Kocimientka
Date: Fri, 02 May 2008 20:11
26 lines
1462 bytes
Próbuje XML'a przepisać do bazy - program wypuszcza eksport w takiej 
postaci:

<source>
	<a>
		<b>Ala</b>
		<c>ma</c>
		<d>kota</d>a
	</a>
	<a>
		<b>i</b>
		<c>nie</c>
		<d>tylko</d>a
	</a>
</source>

Niestety zdaje się, że nie kumam w ogóle idei XSLT i zvon.org jakoś nie 
może mi pomóc - nie wiem na przykład czy jest sens robić zagnieżdżone 
for-each. Wynik powinno wypluwać w takiej postaci:

b,c,d - Ala,ma,kota
b,c,d - i,nie,tylko

W sensie chodzi o to, żeby XSLT przekształcił XML'a do SQL'a - jak się 
uda jak powyżej to już nie będzie problemem. Wcześniej robiłem to AWK a 
właściwie mieszaniną basha i AWK i dalekie to było od automatyzmu.
Re: Czy się w ogóle da...
#9861
Author: szomiz
Date: Fri, 02 May 2008 20:31
21 lines
1718 bytes
Użytkownik "Juzek Kocimientka" <kocimientka@interia.pl> napisał w wiadomości
news:fvfsi5$72i$1@news.onet.pl...

> b,c,d - Ala,ma,kota
> b,c,d - i,nie,tylko

A czy probowales to przeksztalcic _jakkolwiek_?

Bo - nie gniewaj sie - ale przedstawiony problem to podstawy podstaw :/

Toz - qrwa - pusta transformacja:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />

Zwroci wyniki, ktore, po zmianie kolejnosci wezlow w dokumnecie wyjsciowym 
wskaza odpowiednie kierunki.

Nawet jak sie bedzie z for-each korzystac...

sz.
Re: Czy się w ogóle da...
#9862
Author: Juzek Kocimientka
Date: Fri, 02 May 2008 20:39
33 lines
1959 bytes
szomiz pisze:
> Użytkownik "Juzek Kocimientka" <kocimientka@interia.pl> napisał w wiadomości
> news:fvfsi5$72i$1@news.onet.pl...
> 
>> b,c,d - Ala,ma,kota
>> b,c,d - i,nie,tylko
> 
> A czy probowales to przeksztalcic _jakkolwiek_?

O dżizas - na 1000 różnych sposobów :D

Najbardziej mnie wkurzyło, że value potrafi zwrócić wiersz a czasem 
wszystko. To musi jakoś inaczej działać jak normalny program ;)

> 
> Bo - nie gniewaj sie - ale przedstawiony problem to podstawy podstaw :/

Uff... czyli jest szansa :D

> Toz - qrwa - pusta transformacja:
> 
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" />
> 
> Zwroci wyniki, ktore, po zmianie kolejnosci wezlow w dokumnecie wyjsciowym 
> wskaza odpowiednie kierunki.
> 
> Nawet jak sie bedzie z for-each korzystac...
> 
> sz.

No to zaraz wyślę jak to rozwiązałem to przynajmniej poprawię wszystkim 
humor :D To na pewno są podstawy podstaw ale ja tego w ogóle nie czuję.
Re: Czy się w ogóle da...
#9863
Author: Juzek Kocimientka
Date: Fri, 02 May 2008 20:47
88 lines
3923 bytes
Dało się :)

Poprzednio uprościłem przykład żeby nie mącić. To jest baza programu do 
obsługi nieruchomości i ma być automatycznie eksportowana na usługi kodu 
PHP - prosto do MySQL'a.

Sama baza ma taką postać:

<?xml version="1.0" encoding="windows-1250"?>
<gazeta>
   <rynek_wtorny>r
     <rekord>t
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_nieruchomosci>mieszkanie</typ_nieruchomosci>
       <ogloszeniodawca>agencja</ogloszeniodawca>
       <status>n</status>
     </rekord>
     <rekord>
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_nieruchomosci>mieszkanie</typ_nieruchomosci>
       <ogloszeniodawca>agencja</ogloszeniodawca>
       <status>n</status>
     </rekord>
     <rekord>
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_nieruchomosci>mieszkanie</typ_nieruchomosci>
       <ogloszeniodawca>agencja</ogloszeniodawca>
       <status>n</status>
     </rekord>
     <rekord>
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_nieruchomosci>mieszkanie</typ_nieruchomosci>
       <ogloszeniodawca>agencja</ogloszeniodawca>
       <status>n</status>
       <zdjecie1>13_2.jpg</zdjecie1>
       <zdjecie2>13_3.jpg</zdjecie2>
       <zdjecie3>13_4.jpg</zdjecie3>
     </rekord>
   </rynek_wtorny>
   <grunty>
     <rekord>
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_gruntu>budowlany</typ_gruntu>
     </rekord>
     <rekord>
       <typ_transakcji>oferta sprzedaży</typ_transakcji>
       <typ_gruntu>budowlany</typ_gruntu>
       <ogloszeniodawca>agencja</ogloszeniodawca>
     </rekord>
   </grunty>
   <rynek_komercyjny>a</rynek_komercyjny>
   <info>
     <caly_eksport>1</caly_eksport>
   </info>
</gazeta>

Cały mój problem polegał na tym, że jakbym nie kombinował to nie chciał 
wyświetlać naprzemiennie nazw węzłów i ich zawartości <rekord></rekord>. 
Walił całość.

A tak to rozwiązałem chociaż puszczam to tylko dlatego, żebyś nie 
myślał, że chcę pasożytować na czyjejś pracy. Ale albo za stary jestem 
albo za głupi (co bardziej prawdopodobne) i po prostu nie kumam XSLT.

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:output method="text" encoding="UTF-8" />

<xsl:template match="/">
         <xsl:for-each select="/gazeta/rynek_wtorny/rekord">
                 <xsl:for-each select="*">
                         <xsl:value-of select="name()"/>
                 </xsl:for-each>
                 <xsl:for-each select="*">
                         <xsl:value-of select="."/>
                 </xsl:for-each>

         </xsl:for-each>


</xsl:template>

</xsl:stylesheet>


No jeszcze to nie jest do końca to (a jak ktoś zna XSLT to pewnie będzie 
chiał mnie zastrzelić) ale robi to czego się obawiałem, że robić nie 
będzie. Trzy dni ślęczenia - to musi być wada mózgu :D
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads