Если вы собираетесь использовать время позже для вычисления, узнайте, как использовать опцию -f
в /usr/bin/time
для вывода кода , который экономит время. Вот некоторый код, который я недавно использовал, чтобы получить и отсортировать время выполнения целого класса студенческих программ:
fmt="run { date = '$(date)', user = '$who', test = '$test', host = '$(hostname)', times = { user = %U, system = %S, elapsed = %e } }"
/usr/bin/time -f "$fmt" -o $timefile command args...
Позже я соединил все файлы $timefile
и перенаправил вывод в Lua интерпретатор . Вы можете сделать то же самое с Python или Bash или любой другой ваш любимый синтаксис. Я люблю эту технику.
И снова техника группировки Мюнчи кажется недостающей частью.
Достаточно тривиальная проблема для нее, поэтому я позволю вам сделать свою работу, чтобы получить бороться с Мюнхом.
Пожалуйста, создайте первый xsl: key, после чего вы сможете легко использовать приведенный ниже код.
xsl: key name = "levelName" match = "level2" use = "@ Name"
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="base">
<xsl:element name="{local-name(.)}">
<xsl:element name="levelNames">
<xsl:apply-templates/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="level">
<xsl:for-each select="level2[count(.|key('levelName', @Name)[1]) = 1]">
<xsl:sort order="ascending" data-type="text" select="@Name"/>
<xsl:element name="{local-name(..)}">
<xsl:attribute name="level2Name">
<xsl:value-of select="@Name"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:template>
XSLT Soln:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:key name="LevelDistint" match="level2" use="@Name"/>
<xsl:template match="base">
<base>
<levelNames>
<xsl:for-each select="level/level2[generate-id() = generate-id(key('LevelDistint', @Name)[1])]">
<level>
<xsl:attribute name="level2Name"><xsl:value-of select="normalize-space(@Name)"/></xsl:attribute>
</level>
</xsl:for-each>
</levelNames>
</base>
</xsl:template>
</xsl:stylesheet>
XSLT O / P:
<?xml version="1.0" encoding="UTF-8"?>
<base>
<levelNames>
<level level2Name="AA"/>
<level level2Name="BB"/>
<level level2Name="CC"/>
</levelNames>
</base>