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í
×
    včera 19:44 | IT novinky

    Samsung na akci Galaxy Unpacked July 2026 (YouTube) představil své nové telefony Galaxy Z Fold8 Ultra, Fold8 a Flip8, hodinky Galaxy Watch Ultra2 a Watch9 a chytré brýle ve spolupráci s Gentle Monster a Warby Parker.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | IT novinky

    Po pěti letech vývoje vyšla česká počítačová hra Scarlet Deer Inn (ProtonDB). Scarlet Deer Inn je vyšívaná temná středověká pohádka. Zatímco život ve zdánlivě obyčejné vesnici se točí kolem běžných povinností a sousedských drbů, v podzemí se skrývají zlověstná tajemství.

    Ladislav Hagara | Komentářů: 1
    včera 13:33 | IT novinky

    Představen byl Raspberry Pi Touch Display 2 s uhlopříčkou 10 palců a rozlišením 1200 × 1920 pixelů. Cena je 80 dolarů.

    Ladislav Hagara | Komentářů: 1
    včera 13:22 | Komunita

    RPCS3 (Wikipedie), tj. open source emulátor Sony PlayStation 3, snížil minimální požadavky. Nově jsou podporovány starší grafické karty ATI Radeon řady HD 2000, 3000 a 4000 z let 2007 až 2009. Na PC běží už 75 % všech her pro PlayStation 3. V budoucnu bude RPCS3 fungovat bez firmwaru z PS3. V RPCS3 byl implementován systémový modul cellSysmodule (𝕏).

    Ladislav Hagara | Komentářů: 0
    včera 11:00 | Zajímavý software

    Vyšel open-source nástroj winetop (MIT) — nativní CLI/TUI pro sledování a ukončování Wine, Proton, Lutris, Heroic a Bottles sezení. Seskupuje procesy podle WINEPREFIX / Steam AppId, umí bezpečně zabít jen hru (včetně Steam reaperu) a nabízí i skriptovatelné příkazy (list, kill, orphans, …). Balíčky jsou mimo jiné na crates.io, Copru (dnf copr enable kovariadam/winetop), PPA ppa:kovariadam/winetop a AUR (winetop-bin).

    kovariadam | Komentářů: 0
    včera 02:44 | IT novinky

    Ve spolupráci společností OpenAI a Work Louder byla představena (𝕏) hardwarová klávesnice Codex Micro pro práci s AI agenty. Cena klávesnice je 230 dolarů.

    Ladislav Hagara | Komentářů: 1
    21.7. 20:00 | Nová verze

    Byl vydán Mozilla Firefox 153.0. 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 153 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    21.7. 13:44 | Bezpečnostní upozornění Ladislav Hagara | Komentářů: 11
    21.7. 13:11 | Nová verze

    Byla vydána nová verze 5.44 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 71 vývojářů. Změněno bylo přibližně 270 tisíc řádků v 1 300 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 0
    21.7. 12:33 | Pozvánky

    Na 23. září 2026 je do bratislavské Nové Cvernovky naplánovaná jednodenní konference #nobullshit.camp pro tech leadery, DevOps a platform inženýry. Mají tu zaznít upřímné příběhy z praxe o tom, co v produkčních systémech reálně fungovalo, co se pokazilo a co si z toho lidé odnesli. Témata pokrývají tři oblasti – DevOps a platformy (Kubernetes, cloud, provoz systémů), firemní kulturu a leadership. Program běží ve dvou formátech: hlavní

    … více »
    alian | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (30%)
     (5%)
     (6%)
     (2%)
     (15%)
     (24%)
    Celkem 2205 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    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: 457×

    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áknoNahoru

    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.