Portál AbcLinuxu, 5. května 2025 13:09

Dotaz: jde udělat v XSLT seznam atributů elementu oddělených čárkou?

27.10.2013 10:09 jeleniste | skóre: 13 | blog: Prokustovo lože
jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Přečteno: 295×
Odpovědět | Admin

Mám XML, ze kterýho chci něco soukat do db a jednotlivý položky jsou jako atributy elementu, tj něco jako

<KAT KATEGORIE="10" KAT_SPEC="0"/>

A z toho chci mít

INSERT INTO KAT (KATEGORIE, KAT SPEC) VALUES (10, 0);

Problém mě dělají ty čárky mezi tim. Z jednotlivejch elementů udělat cooma separated list, to umim (vygůglovat), ale udělat ho z atributů ne

Nejsem blbý, jen se hloupě ptám

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

27.10.2013 11:34 NN
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jazyk?
27.10.2013 11:36 NN
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Neumim cist.. ignore.
27.10.2013 14:12 Kit
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi hledáš tohle:
<xsl:for-each select="KAT/@*">
    <xsl:value-of select="name(.)"/>
    <xsl:value-of select="."/>
</xsl:for-each>
27.10.2013 15:17 jeleniste | skóre: 13 | blog: Prokustovo lože
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
No, k tomu jsem se dogůgloval, ale ztroskotal jsem na tom, jak pořešit ty čárky, aby nebyla za poslednim atributem. Všechno co jsem našel operuje s tim, že se koukne, jestli je to poslední element, to u atributů nevim jak udělat. Nevim, jestli nebude pro mě výhodnější to nějak spytlíkovat v perlu, tohle je sice elegantnější, ale mam trochu strach, že se s tim budu patlat a nakonec narazim na něco, co nebudu umět udělat a ta práce přijde vniveč.
Nejsem blbý, jen se hloupě ptám
Řešení 1× (jeleniste (tazatel))
27.10.2013 15:26 Kit
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Nedalo mi to a zkusil jsem si to udělat celé. Vstupní data:
<root>
<kat kategorie="10" kat_spec="1"/>
<kat kategorie="12" kat_spec="4"/>
<zbozi nazev="Kalhoty" cena="800"/>
<zbozi nazev="Košile" cena="300"/>
</root>
Šablona:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="text" encoding="UTF-8"/>

<xsl:template match="/root">
    <xsl:for-each select="*">INSERT INTO <xsl:value-of select="name(.)"/> (<xsl:for-each select="@*">
            <xsl:if test="position() != 1">, </xsl:if>
            <xsl:value-of select="name(.)"/></xsl:for-each>) VALUES (<xsl:for-each select="@*">
            <xsl:if test="position() != 1">, </xsl:if>'<xsl:value-of select="."/>'</xsl:for-each>);<xsl:text>
</xsl:text>
    </xsl:for-each>
</xsl:template>

</xsl:stylesheet>
Výstup:
INSERT INTO kat (kategorie, kat_spec) VALUES ('10', '1');
INSERT INTO kat (kategorie, kat_spec) VALUES ('12', '4');
INSERT INTO zbozi (nazev, cena) VALUES ('Kalhoty', '800');
INSERT INTO zbozi (nazev, cena) VALUES ('Košile', '300');
Pozor, nemám v tom ošetřeny speciální znaky.
27.10.2013 16:01 jeleniste | skóre: 13 | blog: Prokustovo lože
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Super díky, to je přesně ono, akorát mi není jasný, jak funguje ta podmínka s tou čárkou, to se bere pozice od zadu? Jako, je to elegantní, to udělat takhle.
Nejsem blbý, jen se hloupě ptám
27.10.2013 16:05 Kit
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Ne, dal jsem čárku dopředu. Pokud by byla první, tak ji nevypisuji.
27.10.2013 16:13 jeleniste | skóre: 13 | blog: Prokustovo lože
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Tak, teď si fakt připadám jak debil. Díky moc.
Nejsem blbý, jen se hloupě ptám
27.10.2013 16:20 Kit
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Ani bych se nedivil, kdybys z toho byl jelen :-D
27.10.2013 17:39 jeleniste | skóre: 13 | blog: Prokustovo lože
Rozbalit Rozbalit vše Re: jde udělat v XSLT seznam atributů elementu oddělených čárkou?
Já mam už pro tyhle případy to tvrzení v mym podpisu.
Nejsem blbý, jen se hloupě ptám

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.