Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.
McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.
Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.
Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.
Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].
Před rokem byla streamovací služba HBO Max přejmenována na Max. Dle managementu slovo HBO v názvu nebylo důležité. Včera byl Max přejmenován zpět na HBO Max. Kolik milionů dolarů to stálo? 😂
Byla vydána nová major verze 8.0.0 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata (Wikipedie). Přehled novinek v oficiálním oznámení a v aktualizované dokumentaci.
Mastodon (Wikipedie) - sociální síť, která není na prodej - byl vydán ve verzi 4.4. Přehled novinek s náhledy a videi v oznámení na blogu.
Instituce státní správy nebudou smět využívat produkty, aplikace, řešení, webové stránky a webové služby poskytované čínskou společností DeepSeek. Na doporučení Národního úřadu pro kybernetickou a informační bezpečnost rozhodla o jejich zákazu vláda Petra Fialy na jednání ve středu 9. července 2025.
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
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í.
xsltproc
.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:
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 nebojavax.xml.transformer.TransformerFactory
a používat rovnou konkrétní implementace, ale to znamená důkladnou znalost jejich vnitřností.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
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.
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)
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.
…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).
Díky,EXSLT vypadá slibně, vyzkouším a dám vědět, jak to dopadlo
matches()
tam libxslt chybi.
Pokud ovsem ty informace nemaji zastarale. Coz je pak problem tvurcu enginu, ze o tom nedaji vedet.
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.
function-available
a/alebo element-available
, imho jedina spolahliva cesta, ako o xslt procesore nieco zistit.
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?
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
Určitě z toho něco vymáčknout půjde:
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)
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.
no, vlastne neviemty 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?
Pro cílové uživatele z toho plynou tyto výhody:
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.
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++ A když už jsme u toho cé plus plus, tak jedna fakt podařená, která se sem teď hodí
Tiskni
Sdílej: