🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.xml
Article #9840

Re: xslt - zmiana formatu danych

#9840
From: tojest5
Date: Tue, 29 Apr 2008 10:37
66 lines
3595 bytes
On 29 Kwi, 10:33, "szomiz" <szo...@kocha.dostawac.reklamy.przez.net>
wrote:
> Użytkownik "szomiz" <szo...@kocha.dostawac.reklamy.przez.net> napisał w
> wiadomościnews:fv5a0c$sm4$1@nemesis.news.neostrada.pl...
>

> Popatrz na sprawe nieco inaczej. Chcesz, aby wiersz wyniku generowal sie dla
> konkretnych elementow wystepujacych w dokumencie.  Ktore to elementy?

podaje ścieżki do tych elementów (jeden wiersz) (średnik to wartość
<xsl:text> i odgranicza kolejne pola w wierszu).

caly/zestaw ; /caly/rzecz1/obszar2/k1 ; /caly/rzecz1/obszar1/k1 ;
/caly/rzecz1/obszar1/k2

czyli w wyniku elementy te nie są ułożone w takiej kolejności jak ma
to miejsce w xml.

wartość <zestaw> powtarza się na początku każedego wiersza, czyli jest
pierwszym polem,
natomiast ilość wierszy jest uzależniona wystąpieniem <rzecz1>

dlatego pierwszą regułę dałem:

<xsl:apply-templates select = "rzecz1"> jako ograniczenie do
przetwarzania konkretnych elementów.

następna reguła to
<xsl:template match="rzecz1">
<xsl:value-of select="/caly/zestaw/text()"> czyli dla napotaknego
rzecz1 wstaw text() z <zestaw>

i tu powinny być wartości konkretnych elementów wykazanych ww.
Nie wiem jak blokować regułę wbudowaną w przypadku gdy kolejne
elementy mają być wyświetlone w różnej kolejności.
 - skoro reguła wbudowana przetwarza je właśnie po kolei.

> Zalozmy, ze rzecz1 (chociaz na oko wydaje, ze obszar1, obszar2...).
>
> Blokujesz wykonanie wbudowanych szablonow, ktore "nie prowadza" do
> interesujacych cie elementow:
>
> <xsl:template match="*[not(.//rzecz1)]"/>

ok, wykorzystam


> <xsl:template match="rzecz1">
>     <xsl:value-of .../>
>     ...
>     <xsl:text>&#13;&#10;</xsl:text>
> </xsl:template-match>
>
> I te dwa szablony w transformacji powinny wystarczyc.

> To dla przypadku, w ktorym _wiesz_ jakie pola maja sie znalezc w odpowiedzi.
> Transformacja, ktora sama okresli liczbe pol w wierszu, to /troche/ inny
> problem.

Tego się obawaiłem - transformacja musi określić tutaj liczbę pól -
zawsze musi ich być 4, bez względu czy dany element jest, czy też go
nie ma

dzięki!

Redi_S
Technical Details
Message-ID: <5bc27a1c-f3c1-4278-ba9d-b94b7d671503@59g2000hsb.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!59g2000hsb.googlegroups.com!not-for-mail
References: <ac885687-be4d-46ec-8077-8efeeb51d700@2g2000hsn.googlegroups.com> <fv3vnp$lih$1@nemesis.news.neostrada.pl> <f507be36-a704-42db-8523-d43092cdc01b@s50g2000hsb.googlegroups.com> <fv5a0c$sm4$1@nemesis.news.neostrada.pl> <fv6muc$232$1@nemesis.news.neostrada.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!59g2000hsb.googlegroups.com!not-for-mail
From: tojest5@gmail.com
Newsgroups: pl.comp.xml
Subject: Re: xslt - zmiana formatu danych
Date: Tue, 29 Apr 2008 03:37:38 -0700 (PDT)
Organization: http://groups.google.com
Lines: 74
Message-ID: <5bc27a1c-f3c1-4278-ba9d-b94b7d671503@59g2000hsb.googlegroups.com>
References: <ac885687-be4d-46ec-8077-8efeeb51d700@2g2000hsn.googlegroups.com>  <fv3vnp$lih$1@nemesis.news.neostrada.pl> <f507be36-a704-42db-8523-d43092cdc01b@s50g2000hsb.googlegroups.com>  <fv5a0c$sm4$1@nemesis.news.neostrada.pl> <fv6muc$232$1@nemesis.news.neostrada.pl>
NNTP-Posting-Host: 62.111.158.25
Mime-Version: 1.0
X-Trace: posting.google.com 1209465459 13448 127.0.0.1 (29 Apr 2008 10:37:39 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Tue, 29 Apr 2008 10:37:39 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: 59g2000hsb.googlegroups.com; posting-host=62.111.158.25;  posting-account=EYOdfgoAAABUZ8LTOHSjmKNg4KhguD24
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET  CLR 2.0.50727),gzip(gfe),gzip(gfe)
X-HTTP-Via: 1.0 PLKRAISA0002, 1.1 pltgw.pl.tesco-europe.com:9196  (squid/2.6.STABLE6)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit