XSLT: csak az aktuális elem kiválasztása
Üdvözlet!
Lenne egy amatőr kérdésem, sajnos nem tudtam rájönni a megoldásra:xsl:szoval van az xml-em, amiben vannak a <c>-k(legyenek komponensek) a c-ken belul lehet pl. <l> vagy <h> vagy akarmi mas, lenyeg, hogy kulonbozo tipusu entitasokat reprezentalnak.
az l-be peldaul menupontok tulajdonsagait tarolom(url, kep, flash, akarmi).
azt szeretnem az xsl-el, hogy ebbol legeneralom a menupontokat, meg ami meg kell.
az a problemam, hogy ha eler a feldolgozo az elso <l>-hez, akkor nem csak ennek az l-nek az elemeit jeleniti meg, hanem az osszes utana kovetkezojet is. es amikor eler a kovetkezohoz, akkor megint az osszeset.
nekem az kellene,hogy csak az aktualisat dolgozza fel.
remelem igy ertheto.
a <c>-ket is csak azert tettem bele, hogy hatha for-al menni fog, de sajna ugy se sikerult :(
elore is koszonom a segitseget!
■ Lenne egy amatőr kérdésem, sajnos nem tudtam rájönni a megoldásra:
<c><h>...</h></c>
<c><l>...</l></c>
<c><h><a>..</a></h></c>
<c><l>..</l></c>
<body>
<div id="main">
<xsl:for-each select="./c/">
<xsl:value-of select="."/>
</xsl:for-each>
</div>
</body>
<xsl:template match="//h">...
<xsl:template match="//a">...
<xsl:template match="//l">...
az l-be peldaul menupontok tulajdonsagait tarolom(url, kep, flash, akarmi).
azt szeretnem az xsl-el, hogy ebbol legeneralom a menupontokat, meg ami meg kell.
az a problemam, hogy ha eler a feldolgozo az elso <l>-hez, akkor nem csak ennek az l-nek az elemeit jeleniti meg, hanem az osszes utana kovetkezojet is. es amikor eler a kovetkezohoz, akkor megint az osszeset.
nekem az kellene,hogy csak az aktualisat dolgozza fel.
remelem igy ertheto.
a <c>-ket is csak azert tettem bele, hogy hatha for-al menni fog, de sajna ugy se sikerult :(
elore is koszonom a segitseget!
mi a kérdés?
<c>
-ken belül lévő<l>
-eket dolgozza fel együtt, aztán a következő<c>
-ben lévő<l>
-eket, és így tovább? Akkor kell legyen aktuális<c>
, tehát a<c>
-n belül kellene kiválasztani megjelenítésre az<l>
-eket. Nem tudnál esetleg egy értelmesebb elemneveket, és lecsupaszított példát mutatni (ha már a <c> csak valami nem feltétlen szükséges technikai ok miatt került be)? Így nem eléggé világos neked, hogy miben tudnék segíteni.xml
<header style="header">
<hc src="head_bal.jpg" width="220" height="97" title="Logo" />
<hc src="head_kozep.jpg" width="203" height="97" title="Belepes" />
<hc src="head_jobb.jpg" width="317" height="97" title="vmi" />
</header>
</component>
<component>
<lister style="fomenu">
<link title="xx" url="50" target="n">
<img1 src="button1.gif" width="93" />
</link>
<link title="ugyfelek" url="51" target="n">
<img1 src="button2.gif" width="93" />
</link>
<link title="Portfolia" url="52" target="n">
<img1 src="button3.gif" width="93" />
</link>
</lister>
</component>
<component>
<cikk type=" ai" src="street.jpg" w1="423" w2="317" >
<div class="cikk">cikk szovege</div>
</cikk>
</component>
<component>
<lister extrastyle="felso_menu">
<link title="egy" url="47" target="n">
</link>
<link title="ket" url="49" target="n">
</link>
</lister>
</component>
ez az xml.
a mostani verzioban amikor a feldolgozas eler az elso <lister>-hez, akkor nem csak az abban levo linkek kerulnek kiirasra, hanem az osszes lister linkjei. es amikor a masodikhoz er, akkor ugyanugy kiirja az elsojet is(tehat megint az osszeset).
az lenne a kerdes, hogy hogyan tudnam azt megoldani, hogy a fenti sorrendet megtartva, mindig csak az aktualis componenten beluli elemeket dolgozza fel.
koszi, waff
Fura...
Ha az első példához ragaszkodunk, akkor value-of select="l" ell neked, ha csak az aktuális elem l nevű gyerekére szeretnéd a value-of -ot vonatkoztatni.
rossz a kerdes?
tehat:
<component>
<lister>
<link title="egy"/>
<link title="ket"/>
</lister>
</component>
<component>
<header ... />
</component>
<component>
<lister>
<link title="harom"/>
<link title="negy"/>
</lister>
</component>
ekkor a feldolgozas utan azt kapom, hogy egy ket harom negy + ami a headerben van + egy ket harom negy.
ehelyett azt szeretnem: egy ket + header + harom negy.
a kerdes, hogy ezt hogyan tudom megcsinalni?
két illesztés
egy ket header harom negy
. Bár nem próbáltam, ennyi elég kell legyen ehhez az alapkérdéshez.ehh
ugy latszik tanulmanyoznom kell az xpath-ot...
koszi megegyszer a segitseget!