Byl vydán Mozilla Firefox 154.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 154 bude brzy k dispozici také na Flathubu a Snapcraftu.
Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 168 (pdf).
Open-source citační manažer Zotero (Wikipedie, GitHub) byl vydán v nové major verzi 10. Přehled novinek v příspěvku na blogu.
Interaktivní editor binárních dat GNU poke byl vydán ve verzi 5.0 (seznam změn).
Byla vydána verze 0.85 telnet a ssh klienta PuTTY (Wikipedie). Řešeno je 5 zranitelností.
Byly publikovány novinky z vývoje GIMPu. Pracuje se na novém formátu souborů. Stávající binární XCF bude nahrazen "zazipovaným XML". XCF zůstane plně podporován pouze pro načítání starých souborů.
Workshop o umělé inteligenci v Dartmouthu proběhl před 70 lety, od 18. června do 17. srpna 1956. Dvouměsíční soustředění 6–11 informatiků, iniciované Johnem McCarthym, položilo základy oboru umělé inteligence.
Po 9 týdnech vývoje od vydání Linuxu 7.1 oznámil Linus Torvalds vydání Linuxu 7.2. Podrobný přehled novinek a vylepšení na Linux Kernel Newbies nebo LWN.net: první a druhá polovina začleňovacího okna.
Debian dnes slaví 33 let. Ian Murdock oznámil vydání "Debian Linux Release" 16. srpna 1993.
Probíhá hlasování o používání LLM při vývoji Debianu. Vývojáři Debianu mají na výběr 9 možností (návrhy A až H a žádný z nich).
Řešení dotazu:
<?xml version="1.0"?> <data> <a> <item>Alpha</item> <item>Bravo</item> <item>Charlie</item> </a> <b> <item>Zulu</item> </b> </data>Pak následující dorovná buňky pomlčkama.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" />
<xsl:template match="/">
<html>
<head><title>Title</title></head>
<body>
<xsl:apply-templates select="data" />
</body>
</html>
</xsl:template>
<xsl:template match="data">
<xsl:variable name="THIS" select="." />
<xsl:variable name="BOTH" select="a/item | b/item" />
<table border="1">
<xsl:for-each select="$BOTH[(position() <= count($THIS/a/item)) or (position() <= count($THIS/b/item))]">
<xsl:variable name="INDEX" select="position()" />
<tr>
<td>
<xsl:value-of select="$INDEX" />
</td>
<td>
<xsl:choose>
<xsl:when test="$INDEX <= count($THIS/a/item)">
<xsl:apply-templates select="$THIS/a/item[$INDEX]" />
</xsl:when>
<xsl:otherwise>
-
</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="$INDEX <= count($THIS/b/item)">
<xsl:apply-templates select="$THIS/b/item[$INDEX]" />
</xsl:when>
<xsl:otherwise>
-
</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template match="item">
<b><xsl:value-of select="." /></b>
</xsl:template>
</xsl:stylesheet>
Trik je v tom, že se vyberou oba dva uzly pro for-each iteraci a v každém průchodu se kontroluje, jestli tam takový prvek je.
Ale nevím, jak to bude rychlé pro větší data.
Tiskni
Sdílej: