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 16:55 | Nová verze

Byla vydána verze 1.0 klienta F-Droid určeného pro instalaci aplikací do Androidu ze softwarového repozitáře F-Droid (Wikipedie), alternativy k Google Play, nabízející pouze svobodný a otevřený software. Podrobnosti v přehledu změn [Hacker News].

Ladislav Hagara | Komentářů: 5
dnes 00:55 | Nová verze

Po téměř 13 měsících vývoje od verze 0.11.0 byla vydána verze 0.12.0 hardwarově nenáročného desktopového prostředí LXQt (Lightweight Qt Desktop Environment, Wikipedie) vzniklého sloučením projektů Razor-qt a LXDE. Přehled novinek v příspěvku na blogu.

Ladislav Hagara | Komentářů: 9
včera 12:33 | Zajímavý software

Článek ne Medium představuje nejnovější stabilní verzi 2.0 svobodné decentralizované mikroblogovací platformy a sociální sítě podobné Twitteru Mastodon (Wikipedie). Detailní přehled novinek na GitHubu [Hacker News].

Ladislav Hagara | Komentářů: 0
včera 06:00 | Komunita

V Praze na půdě Elektrotechnické fakulty ČVUT dnes probíhá RT-Summit 2017 – setkání vývojářů linuxového jádra a uživatelů jeho real-time verze označované jako preempt-rt. Přednášky lze sledovat online na YouTube.

Ladislav Hagara | Komentářů: 0
20.10. 14:33 | Zajímavý projekt

Blender Animation Studio zveřejnilo první epizodu z připravovaného animovaného seriálu The Daily Dweebs o domácím mazlíčkovi jménem Dixey. Ke zhlédnutí také ve 3D s rozlišením 8K.

Ladislav Hagara | Komentářů: 0
20.10. 12:34 | Komunita

Aktualizovanou počítačovou hru Warhammer 40,000: Dawn of War III v ceně 39,99 eur běžící také na Linuxu lze o víkendu na Steamu hrát zdarma a případně ještě v pondělí koupit s 50% slevou. Do soboty 19:00 lze na Humble Bundle získat zdarma Steam klíč k počítačové hře Sid Meier's Civilization® III v ceně 4,99 eur běžící také ve Wine.

Ladislav Hagara | Komentářů: 0
20.10. 00:22 | Nasazení Linuxu

Společnost Samsung oznámila, že skrze dokovací stanici DeX a aplikaci Linux on Galaxy bude možno na Samsung Galaxy S8 a S8+ a Galaxy Note 8 provozovat Linux. Distribuce nebyly blíže upřesněny.

Phantom Alien | Komentářů: 19
19.10. 23:55 | Komunita

Společnost Purism na svém blogu oznámila, že její notebooky Librem jsou nově dodávány se zrušeným (neutralized and disabled) Intel Management Engine (ME). Aktualizací corebootu na již prodaných noteboocích lze Management Engine také zrušit. Více v podrobném článku.

Ladislav Hagara | Komentářů: 2
19.10. 21:44 | Nová verze

Organizace Apache Software Foundation (ASF) na svém blogu slaví páté výročí kancelářského balíku Apache OpenOffice jako jejího Top-Level projektu. Při této příležitosti byl vydán Apache OpenOffice 4.1.4 (AOO 4.1.4). Podrobnosti v poznámkách k vydání. Dlouhé čekání na novou verzi tak skončilo.

Ladislav Hagara | Komentářů: 7
19.10. 19:22 | Pozvánky

Již příští týden - 26. a 27. října se v Praze v hotelu Olšanka odehraje OpenWRT Summit. Na webu konference naleznete program a možnost zakoupení lístků - ty stojí 55 dolarů. Čtvrtek bude přednáškový a v pátek se budou odehrávat převážně workshopy a meetingy.

Miška | Komentářů: 1
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (9%)
 (0%)
 (0%)
 (1%)
 (76%)
 (13%)
Celkem 204 hlasů
 Komentářů: 8, poslední dnes 23: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: 340×

    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.