Article View: pl.comp.xml
Article #9840Re: xslt - zmiana formatu danych
From: tojest5
Date: Tue, 29 Apr 2008 10:37
Date: Tue, 29 Apr 2008 10:37
66 lines
3595 bytes
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> </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-mailReferences:
<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