abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:55 | Komunita

    KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.

    Ladislav Hagara | Komentářů: 0
    dnes 03:22 | Nová verze

    Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    dnes 03:00 | Nová verze

    Svobodný kancelářský balík ONLYOFFICE (Wikipedie) byl vydán ve verzi 10.0. Jak online Docs, tak i offline Desktop Editors. Přehled novinek také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 14:44 | IT novinky

    Mozilla představuje Firefox Enterprise určený jako podnikový prohlížeč pro organizace s přísnými požadavky na bezpečnost, správu a dodržování předpisů. S profesionální podporou. Dostupný je zatím ve Francii, Německu, Rakousku a Švýcarsku.

    Ladislav Hagara | Komentářů: 6
    včera 14:33 | Bezpečnostní upozornění

    Kybernetický útok zasáhl nejméně 150 supermarketů Intermarché a několik prodejen řetězců Leclerc a Coopérative U. Chladicí jednotky napadených obchodních domů byly nastaveny na nepřetržité odmrazování a teplota v nich mnohdy vystouala až nad 50°C. Škody napáchané na chlazeném a mraženém zboží budou patrně dosahovat miliónů eur.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 04:00 | Komunita

    Stát Kalifornie zažaloval výrobce 3D tiskových filamentů Polymaker. Vrchní soud San Diego County tvrdí, že firma propagací svých výrobků mezi příznivci 3D tištěných zbraní podporovala výrobu takzvaných 'ghost guns' (DIY zbraní) a že její PLA filament pro 3D tiskárny lze za těchto okolností považovat za součást určenou k výrobě střelné zbraně. Žaloba požaduje mimo jiné finanční sankce a soudní zákaz činnosti, Polymaker se hájí tím, že filament je běžný a sám o sobě legální produkt. Celý text žaloby (PDF na Google Drive).

    ❗Červivý Hřib krade❗ | Komentářů: 19
    včera 03:33 | Nová verze

    V červnu byla představena aplikace Myna pro převod řeči na text v prostředí desktopu Ubuntu. Včera byla Myna zpřístupněna širší komunitě Ubuntu formou technologické ukázky dostupné v Ubuntu 24.04 LTS, Ubuntu 26.04 LTS a Ubuntu 26.10 s GNOME na Waylandu.

    Ladislav Hagara | Komentářů: 0
    12.10. 21:11 | Komunita

    Ubuntu 27.04 bude Tenacious T-Rex.

    Ladislav Hagara | Komentářů: 0
    12.10. 20:44 | Nová verze

    Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.

    Ladislav Hagara | Komentářů: 0
    12.10. 17:22 | Humor

    Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 7
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2840 hlasů
     Komentářů: 32, poslední 11.10. 17:02
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: Filtrování podle vzoru v XSLT 1.0

    5.12.2008 11:01 esparky
    Filtrování podle vzoru v XSLT 1.0
    Přečteno: 677×

    Dobrý den,
    potřeboval bych poradit s následujícím problémem.
    Mám vstup:
    <msg type="abc/>
    <msg type="bcd">
    <msg type="abcd">

    Rád bych provedl nějakou akci, pro všechny entity jejichž atribut type odpovídá
    nějaké masce (např "ab*")

    V XSLT 2.0 se to nejspíš dělá pomocí matches:
    <xsl:if test="matches(jmeno,'ab*')">Vystup</xsl:if>

    Můj program však používá xslt procesor, který umí pouze XSLT 1.0 (libxslt).
    Je nějaká možnost jak to provést v XSLT 1.0

    Děkuji

    Odpovědi

    default avatar 5.12.2008 23:34 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    Přílohy:

    Ahoj,

    já bych být tebou nějak nakombinoval funkce z XSLT 1.0. Takže například starts-with(), contains() a tak podobně.

    Já osobně libxslt nepoužívám, ale používám Javí implementaci XSLT 1.0. V příloze máš test case pro xmlUtilities. Když ty soubory nahraješ do balíku testů, global.sandbox.xmlutilities, tak si s tím můžeš pohrát.

    Můj zdrojový XML je

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    
        <msg type="abc">abc</msg>
        <msg type="bcd">bcd</msg>
        <msg type="abcd">abcd</msg>
    
    </root>
    

    Můj XSLT je

    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
    
        <xsl:template match="/">
            <xsl:element name="result-root">
                <xsl:apply-templates />
            </xsl:element>
        </xsl:template>
        
        <xsl:template match="//msg">
            <xsl:if test="starts-with(@type, 'ab') and contains(@type, 'bc')">
                <xsl:element name="result-element">
                    <xsl:value-of select="." />
                </xsl:element>
            </xsl:if>
        </xsl:template>
    
    </xsl:stylesheet>
    

    Výstup je

    <?xml version="1.0" encoding="UTF-8"?>
    <result-root>
    
        <result-element>abc</result-element>
        
        <result-element>abcd</result-element>
    
    </result-root>
    

    Tak dej vědět, jak jsi pokročil. Jo — a kdyžtak postni nějaký příklad, se kterým si můžu pohrát; takhle na sucho se dost těžko něco vymejšlí.

    6.12.2008 06:41 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    s libxslt je (asi zalezi podla distribucie, moze byt oddelene) programcek xsltproc.
    btw, java implementacii je viacero, osobne mi napr sakra problem robilo pouzivat xalan a saxon zaroven, podla poradia jarov v classpath fungoval bude jeden alebo druhy ...
    default avatar 6.12.2008 23:41 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    s libxslt je (asi zalezi podla distribucie, moze byt oddelene) programcek xsltproc.

    Jo, to je pravda. Ale nejsem s tím moc kamarád. Přecijen v Javě jsem na to lépe…

    osobne mi napr sakra problem robilo pouzivat xalan a saxon zaroven, podla poradia jarov v classpath fungoval bude jeden alebo druhy ...

    No, jsou dva způsoby, jak v tom udělat pořádek:

    1. používat právě jednu implementaci a její JAR dát do endorsed adresáře
    2. v případě, že je třeba vícero implementací vrámci jedné JVM, pak upravit JARy implementací, napsat vlastní ServiceLoader (v našem případě implementaci javax.xml.transformer.TransformerFactory) a vše dát opět do endorsed adresáře. Když nemůžeme použít endorsed adresář, pak musíme správně napsat svůj vlastní class loader a dát si sakra pozor na různé Javí implementace (to, co funguje pod Sun JVM, nemusí fungovat pod IBM JVM a tak podobně). A nebo
    3. nepoužívat javax.xml.transformer.TransformerFactory a používat rovnou konkrétní implementace, ale to znamená důkladnou znalost jejich vnitřností.
    7.12.2008 14:40 esparky
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Předem děkuji všem za odpověď.

    Program je napsán v C++ (je použita knihovna libxslt z gnome, nedošlo mi, že její jméno se asi kryje i s nějakou knihovnou používanou v javě). Volání xsltproc se mi moc nehodí (transformace je volána i několikrát za sekundu), ale když bude nejhůř, tak bych jej asi použil.

    Vaše odpovědi chápu tak, že asi jednoduchý problém jak vyřešit moji transformaci v XSLT 1.0 neí, existuje tedy nějaká C/C++ knihovna podporující XSLT 2.0? Nejlépe taková aby pro ni existoval i port pro OpenWRT.

    Předem dík za jakékoli nakopnutí správným směrem

    default avatar 7.12.2008 17:33 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

     

    Program je napsán v C++ (je použita knihovna libxslt z gnome, nedošlo mi, že její jméno se asi kryje i s nějakou knihovnou používanou v javě).

     

     

    Nekryje. Akorát tyhle věci jsem zvyklej dělat v Javě a mám na to pár projektů, takže napsat příklad a odladit ho je otázka chvilky. Navíc vím, jako část standardu který Xalan implementuje a jakou ne. A když už jsme u toho Xalanu, tak se dělá i pro C++, ale nevím, v jakém je stavu — nikdy jsem si s tím nehrál.

     

    Předem dík za jakékoli nakopnutí správným směrem

     

    Jak jsem psal dole: zkusil bych to EXSLT.

    7.12.2008 14:44 esparky
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Moc dík, za vyčerpávající odpověď...zkusím si vystačit s start_with(i když regex je regex:-) ), popř zkusím najít jinou knihovnu, která xslt 2.0 implementuje (viz můj druhý příspěvek v tomto threadu)

    default avatar 7.12.2008 17:26 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Můžeš si zkusit tu funkci matches() naimplementovat sám. :-) Ale možná bude stačit přepnout do EXSLT. V tomto rozšíření jsou regulární výrazy k dispozici.

    Daniel Kvasnička ml. avatar 8.12.2008 08:24 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    No akorat ze podle jejich informaci funkci matches() nepodporuje ani Xalan ani libxslt...
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    default avatar 8.12.2008 10:00 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    …protože funkce matches() je až v XPath 2.0 a Xalan i libxslt implementují jen XPath 1.0.

    Proto mě napadlo to EXSLT, které to řeší funkcí, která se akorát jinak jmenuje — a podle webu to vypadá, že libxslt nám EXSLT podporuje (libexslt).

    8.12.2008 14:09 esparky
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Díky,EXSLT vypadá slibně, vyzkouším a dám vědět, jak to dopadlo

    Daniel Kvasnička ml. avatar 8.12.2008 14:45 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    To jsme si nerozumeli. Ja vim, ze to patri do 2.0 a ze libxslt neco z EXSLT implementuje... ale neimplementuje tuto konkretni funkci. Na strance kazde fce z EXSLT mate dole sekci IMPLEMENTATIONS a u matches() tam libxslt chybi.

    Pokud ovsem ty informace nemaji zastarale. Coz je pak problem tvurcu enginu, ze o tom nedaji vedet.
    FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
    default avatar 8.12.2008 15:02 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Jo, už to chápu, o co jde.

    No, pakliže lib(e)xslt nic takového nepodporuje, není nic jednoduššího, než si napsat své vlastní rozšíření. :-) Ale jak se takové věci píší pro lib(e)xslt — to neumím a netuším. Já dělal rozšíření jen pro Xalan-J. :-(

    8.12.2008 20:46 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    na to existuje nieco take, ako function-available a/alebo element-available, imho jedina spolahliva cesta, ako o xslt procesore nieco zistit.
    default avatar 8.12.2008 21:07 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Zeptám se filozoficky: Víš, jaký XSLT transformátor v produkci máš; a přesto bys prováděl tyto kontroly?

    Když ti admin pod rukama vymění knihovnu, tak se o tom oba dovíte z logu, ne? :-D

    8.12.2008 23:25 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    Zeptám se filozoficky: Víš, jaký XSLT transformátor v produkci máš; a přesto bys prováděl tyto kontroly?
    Jestli jde z XSL transformace vyhodit výjimka, tak jo :-D
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    default avatar 9.12.2008 09:19 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0

    Určitě z toho něco vymáčknout půjde: :-D

    init:
    deps-jar:
    compile:
    Copying 1 file to /Users/petr/NetBeansProjects/xmlutilities/build/test/classes
    compile-test-single:
    Testsuite: global.sandbox.xmlutilities.XSLTTest1
    Neznámý identifikátor SystemId; Řádek #0; Sloupec #0; Nelze nalézt funkci: matches
    Neznámý identifikátor SystemId; Řádek #0; Sloupec #0; nebyl nalezen token funkce.
    (Chyba se vyskytla na neznámém místě)java.lang.NullPointerException
    Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0,88 sec
    
    ------------- Standard Error -----------------
    Neznámý identifikátor SystemId; Řádek #0; Sloupec #0; Nelze nalézt funkci: matches
    Neznámý identifikátor SystemId; Řádek #0; Sloupec #0; nebyl nalezen token funkce.
    (Chyba se vyskytla na neznámém místě)java.lang.NullPointerException
    ------------- ---------------- ---------------
    Testcase: testTransformation(global.sandbox.xmlutilities.XSLTTest1):        Caused an ERROR
    null
    java.lang.NullPointerException
            at global.sandbox.xmlutilities.XMLUtilities.transformToString(XMLUtilities.java:602)
            at global.sandbox.xmlutilities.XMLUtilities.transformToString(XMLUtilities.java:694)
            at global.sandbox.xmlutilities.XSLTTest1.testTransformation(XSLTTest1.java:44)
    
    
    Test global.sandbox.xmlutilities.XSLTTest1 FAILED
    /Users/petr/NetBeansProjects/xmlutilities/nbproject/build-impl.xml:566: Some tests failed; see details above.
    BUILD FAILED (total time: 2 seconds)
    
    9.12.2008 13:41 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    ide, <message>
    9.12.2008 13:40 happy barney | skóre: 34 | blog: dont_worry_be_happy
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    no, vlastne neviem :-) ty si nikdy nerobil prenosne aplikacie? a pritom su toho manualy javy plne ... :-)

    a naco je to dobre? no napr na to, aby si v pripade pritomnosti rozsirenia pouzil rozsirenie (10ms/call), inak pouzijes pomalsiu vlastnu sablonu (100ms/call). A transformacia pobezi vzdy, hoci s rozdielnym vykonom.

    default avatar 9.12.2008 14:49 default | skóre: 22 | Madrid
    Rozbalit Rozbalit vše Re: Filtrování podle vzoru v XSLT 1.0
    no, vlastne neviem :-) ty si nikdy nerobil prenosne aplikacie? a pritom su toho manualy javy plne ... :-)

    Vždy dělám aplikace přenosné. Ale klíčem k mému úspěchu je přenositelnost na platformy (typ OS), né na knihovny. Proč? Proč se vázat na konkrétní implementaci?

    1. znám její výhody a nevýhody
    2. můžu svůj kód optimalizovat na výkon s konkrétní knihovnou
    3. můj kód je kratší, tudíž obsahuje méně chyb
    4. lépe se opravují chyby (méně testovacích a vývojových prostředí, vpodstatě kartézský součin všech možností všech implementací všeho)

    Pro cílové uživatele z toho plynou tyto výhody:

    • triviální instalace
    • netřeba dohledávat a stahovat něco dalšího odněkud z internetu a zkoušet, zda to pojede
    • jednodušší konfigurace
    • plně funkční vyladěná aplikace

    Problém je ten, že já tvořím cílové aplikace; né Spring Framework a jeho konektory na další Strutsy přes JMS do JDBC, nebo Hibernate přes JMX :-) a já nevím co ještě — jo JNDI a OSGI. :-D

    Takže z mého pohledu jsou tyto kontroly jen výkonnostní brzdou. :-/

    Ale to jsme už zaběhli do tématu filozofického přístupu k vývoji software a o tom tato diskuze není. A konec konců — borec bude také jen stuck with C++ :-D A když už jsme u toho cé plus plus, tak jedna fakt podařená, která se sem teď hodí :-D

    Založit nové vlákno • Nahoru

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

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.