Thread View: pl.comp.xml
4 messages
4 total messages
Started by rleg2000
Tue, 18 Jun 2013 21:00
xslt - prosba o pomoc
Author: rleg2000
Date: Tue, 18 Jun 2013 21:00
Date: Tue, 18 Jun 2013 21:00
50 lines
2474 bytes
2474 bytes
Witam, mam nastepujacy dokument XML (ksiazka) <book> <t p="1">Tytul <i>rozdzialu</i></t> <t p="2">Podtytul rodzialu</t> <item nr="1"> Paragraf 1 </item> <item nr="2"> Paragraf 2 </item> itd </book> Chcialbymzmodyfikowac plik XML tak, aby dodac do tytulow najblizszy "nr" z "item" napisalem plik XSLT: <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="copy.xslt"/> <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="yes" media-type="text/xml"/> <xsl:template match="t"> <xsl:copy><xsl:copy-of select="@*"/>[<xsl:value-of select="following-sibling::item/@nr"/>] <xsl:value-of select="."/></xsl:copy> </xsl:template> </xsl:stylesheet> Otrzymuje: <t p="1">[1] Tytul rozdzialu</t> a chcialbym uzyskac: <t p="1">[1] Tytul <i>rozdzialu</i></t> czyli gubie znaczniki kusywy. Jak poprawic moj plik XSLT, ewentualnie moze trzeba wszystko zmienic? Jesli mozna, to prosze o cos dokladnego, bo nie jestem zadnym specjalista. Pozdrawiam Robert PS uzywam msxml, a plik "copy.xslt" jest nastepujacy: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="node( ) | @*"> <xsl:copy> <xsl:apply-templates select="@* | node( )"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
Re: xslt - prosba o pomoc
Author: rleg2000
Date: Wed, 19 Jun 2013 07:59
Date: Wed, 19 Jun 2013 07:59
22 lines
2550 bytes
2550 bytes
Na razie poradzilem sobie w ten sposob:
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="copy.xslt"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="no" media-type="text/xml"/>
<xsl:template match="t">
<xsl:element name="t">
<xsl:attribute name="p"><xsl:value-of select="@p"/></xsl:attribute>[<xsl:value-of select="following-sibling::item/@nr"/>] <xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
problem pojawi sie, gdy bedzie wiecej atrybutow, a jeszcze gorzej, gdy nie bede wiedzial o jakims.
Ale mam teraz wiekszy problem ze spacjami, mianowicie ma np. paragraf:
<item nr="47">
<p class="pl">47. Et iterum: <i>Haereticum hominem post primam correptionem devita</i>,<span class="prz"> {[b Non pauci mss., <i>sciens quia perversus est</i>. Et infra unus, <i>proprio vitio damnatus</i>.]}</span> <i>sciens quia subversus est qui ejusmodi est, et delinquit, cum sit proprio judicio damnatus</i></p>
</item>
po transformacji GINIE mi SPACJA miedzy "</span>" a "<i>", czyli otrzynuje "</span><i>" Jak ja odzyskac, co zmienic? Bo w przypadku ksiazki jest to nie do przyjecia.
Pozdrowienia
Robert
Re: xslt - prosba o pomoc
Author: szomiz
Date: Wed, 19 Jun 2013 09:43
Date: Wed, 19 Jun 2013 09:43
9 lines
1396 bytes
1396 bytes
Uzytkownik <rleg2000@gmail.com> napisal w wiadomosci news:068ccafa-64a8-46e7-b365-f0a1426afdc0@googlegroups.com... Dlaczego: > <xsl:import href="copy.xslt"/> a nie: <xsl:include href="copy.xslt"/> ? sz.
Re: xslt - prosba o pomoc
Author: rleg2000
Date: Sat, 22 Jun 2013 20:46
Date: Sat, 22 Jun 2013 20:46
35 lines
2358 bytes
2358 bytes
W dniu środa, 19 czerwca 2013 11:43:45 UTC+2 użytkownik szomiz napisał: > Uzytkownik <rl...@gmail.com> napisal w wiadomosci > > news:068ccafa-64a8-46e7-b365-f0a1426afdc0@googlegroups.com... > > Dlaczego: > > > <xsl:import href="copy.xslt"/> > > a nie: > > <xsl:include href="copy.xslt"/> > > ? > > > > sz. Myslalem, ze koncowy efekt jest ten sam. Po zamianie dalej bez spodziewanego efektu. Jezeli chodzi o spacje, znalazlem dwa rozwiazania: 1. w pliku xslt umiescic: <xsl:preserve-space elements="*"/> - to dla mnie byloby lepsze rozwiazanie, ale nie zadzialalo. 2. w pliku xsl umiescic <book xml:space="preserve"> - to zadzialalo, ale minus jest taki, ze musze ingerowac we wszystkie pliki xml, czego chcialbym uniknac. Podsumowaujac, dalej, 1. Nie wiem, dlaczego nie dziala <xsl:preserve-space elements="*"/> w pliku xslt 2. nie wiem jak przeksztalcic xml w xml zmieniajac zawartosc ale zachowujac wszystkie atrybuty. Pozdrowienia Robert
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