⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 html.xsl

📁 xml开源解析代码.版本为libxml2-2.6.29,可支持GB3212.网络消息发送XML时很有用.
💻 XSL
📖 第 1 页 / 共 2 页
字号:
<?xml version="1.0"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"		xmlns:exsl="http://exslt.org/common"		xmlns:str="http://exslt.org/strings"		extension-element-prefixes="exsl str"		exclude-result-prefixes="exsl str">  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>  <!-- This is convoluted but needed to force the current document to       be the API one and not the result tree from the tokenize() result,       because the keys are only defined on the main document -->  <xsl:template mode="dumptoken" match='*'>    <xsl:param name="token"/>    <xsl:variable name="ref" select="key('symbols', $token)"/>    <xsl:choose>      <xsl:when test="$ref">        <a href="libxml2-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>      </xsl:when>      <xsl:otherwise>        <xsl:value-of select="$token"/>      </xsl:otherwise>    </xsl:choose>  </xsl:template>  <!-- dumps a string, making cross-reference links -->  <xsl:template name="dumptext">    <xsl:param name="text"/>    <xsl:variable name="ctxt" select='.'/>    <!-- <xsl:value-of select="$text"/> -->    <xsl:for-each select="str:tokenize($text, ' &#9;')">      <xsl:apply-templates select="$ctxt" mode='dumptoken'>        <xsl:with-param name="token" select="string(.)"/>      </xsl:apply-templates>      <xsl:if test="position() != last()">        <xsl:text> </xsl:text>      </xsl:if>    </xsl:for-each>  </xsl:template><!--             The following builds the Synopsis section-->  <xsl:template mode="synopsis" match="function">    <xsl:variable name="name" select="string(@name)"/>    <xsl:variable name="nlen" select="string-length($name)"/>    <xsl:variable name="tlen" select="string-length(return/@type)"/>    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="return/@type"/>    </xsl:call-template>    <xsl:text>&#9;</xsl:text>    <a href="#{@name}"><xsl:value-of select="@name"/></a>    <xsl:if test="$blen - 40 &lt; -8">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:if test="$blen - 40 &lt; 0">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:text>&#9;(</xsl:text>    <xsl:if test="not(arg)">      <xsl:text>void</xsl:text>    </xsl:if>    <xsl:for-each select="arg">      <xsl:call-template name="dumptext">        <xsl:with-param name="text" select="@type"/>      </xsl:call-template>      <xsl:text> </xsl:text>      <xsl:value-of select="@name"/>      <xsl:if test="position() != last()">        <xsl:text>, </xsl:text><br/>	<xsl:if test="$blen - 40 &gt; 8">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:if test="$blen - 40 &gt; 0">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>      </xsl:if>    </xsl:for-each>    <xsl:text>);</xsl:text>    <xsl:text></xsl:text>  </xsl:template>  <xsl:template mode="synopsis" match="functype">    <xsl:variable name="name" select="string(@name)"/>    <xsl:variable name="nlen" select="string-length($name)"/>    <xsl:variable name="tlen" select="string-length(return/@type)"/>    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>    <xsl:text>typedef </xsl:text>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="return/@type"/>    </xsl:call-template>    <xsl:text> </xsl:text>    <a href="#{@name}"><xsl:value-of select="@name"/></a>    <xsl:if test="$blen - 40 &lt; -8">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:if test="$blen - 40 &lt; 0">      <xsl:text>&#9;</xsl:text>    </xsl:if>    <xsl:text>&#9;(</xsl:text>    <xsl:if test="not(arg)">      <xsl:text>void</xsl:text>    </xsl:if>    <xsl:for-each select="arg">      <xsl:call-template name="dumptext">        <xsl:with-param name="text" select="@type"/>      </xsl:call-template>      <xsl:text> </xsl:text>      <xsl:value-of select="@name"/>      <xsl:if test="position() != last()">        <xsl:text>, </xsl:text><br/>	<xsl:if test="$blen - 40 &gt; 8">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:if test="$blen - 40 &gt; 0">	  <xsl:text>&#9;</xsl:text>	</xsl:if>	<xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>      </xsl:if>    </xsl:for-each>    <xsl:text>);</xsl:text>    <xsl:text></xsl:text>  </xsl:template>  <xsl:template mode="synopsis" match="exports[@type='function']">    <xsl:variable name="def" select="key('symbols',@symbol)"/>    <xsl:apply-templates mode="synopsis" select="$def"/>  </xsl:template>  <xsl:template mode="synopsis" match="exports[@type='typedef']">    <xsl:text>typedef </xsl:text>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>    </xsl:call-template>    <xsl:text> </xsl:text>    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>    <xsl:text>;</xsl:text>  </xsl:template>  <xsl:template mode="synopsis" match="exports[@type='macro']">    <xsl:variable name="def" select="key('symbols',@symbol)"/>    <xsl:text>#define </xsl:text>    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>    <xsl:if test="$def/arg">      <xsl:text>(</xsl:text>      <xsl:for-each select="$def/arg">        <xsl:value-of select="@name"/>	<xsl:if test="position() != last()">	  <xsl:text>, </xsl:text>	</xsl:if>      </xsl:for-each>      <xsl:text>)</xsl:text>    </xsl:if>    <xsl:text>;</xsl:text>  </xsl:template>  <xsl:template mode="synopsis" match="exports[@type='enum']">  </xsl:template>  <xsl:template mode="synopsis" match="exports[@type='struct']">  </xsl:template><!--             The following builds the Details section-->  <xsl:template mode="details" match="struct">    <xsl:variable name="name" select="string(@name)"/>    <div class="refsect2" lang="en">    <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>    <pre class="programlisting">    <xsl:value-of select="@type"/><xsl:text> {</xsl:text>    <xsl:if test="not(field)">      <xsl:text>The content of this structure is not made public by the API.</xsl:text>    </xsl:if>    <xsl:for-each select="field">        <xsl:text>    </xsl:text>	<xsl:call-template name="dumptext">	  <xsl:with-param name="text" select="@type"/>	</xsl:call-template>	<xsl:text>&#9;</xsl:text>	<xsl:value-of select="@name"/>	<xsl:if test="@info != ''">	  <xsl:text>&#9;: </xsl:text>	  <xsl:call-template name="dumptext">	    <xsl:with-param name="text" select="substring(@info, 1, 70)"/>	  </xsl:call-template>	</xsl:if>	<xsl:text></xsl:text>    </xsl:for-each>    <xsl:text>} </xsl:text>    <xsl:value-of select="$name"/>    <xsl:text>;</xsl:text>    </pre>    <p>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="info"/>    </xsl:call-template>    </p><xsl:text></xsl:text>    </div><hr/>  </xsl:template>  <xsl:template mode="details" match="typedef[@type != 'enum']">    <xsl:variable name="name" select="string(@name)"/>    <div class="refsect2" lang="en">    <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>    <pre class="programlisting">    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="string(@type)"/>    </xsl:call-template>    <xsl:text> </xsl:text>    <xsl:value-of select="$name"/>    <xsl:text>;</xsl:text>    </pre>    <p>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="info"/>    </xsl:call-template>    </p><xsl:text></xsl:text>    </div><hr/>  </xsl:template>  <xsl:template mode="details" match="variable">    <xsl:variable name="name" select="string(@name)"/>    <div class="refsect2" lang="en">    <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>    <pre class="programlisting">    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="string(@type)"/>    </xsl:call-template>    <xsl:text> </xsl:text>    <xsl:value-of select="$name"/>    <xsl:text>;</xsl:text>    </pre>    <p>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="info"/>    </xsl:call-template>    </p><xsl:text></xsl:text>    </div><hr/>  </xsl:template>  <xsl:template mode="details" match="typedef[@type = 'enum']">    <xsl:variable name="name" select="string(@name)"/>    <div class="refsect2" lang="en">    <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>    <pre class="programlisting">    <xsl:text>enum </xsl:text>    <a href="#{$name}"><xsl:value-of select="$name"/></a>    <xsl:text> {</xsl:text>    <xsl:for-each select="/api/symbols/enum[@type=$name]">      <xsl:sort select="@value" data-type="number" order="ascending"/>      <xsl:text>    </xsl:text>      <a name="{@name}"><xsl:value-of select="@name"/></a>      <xsl:if test="@value">        <xsl:text> = </xsl:text>	<xsl:value-of select="@value"/>      </xsl:if>      <xsl:if test="@info">        <xsl:text> /* </xsl:text>	<xsl:value-of select="@info"/>        <xsl:text> */</xsl:text>      </xsl:if>      <xsl:text></xsl:text>    </xsl:for-each>    <xsl:text>};</xsl:text>    </pre>    <p>    <xsl:call-template name="dumptext">      <xsl:with-param name="text" select="info"/>    </xsl:call-template>    </p><xsl:text></xsl:text>    </div><hr/>  </xsl:template>  <xsl:template mode="details" match="macro">    <xsl:variable name="name" select="string(@name)"/>    <div class="refsect2" lang="en">    <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>    <pre class="programlisting">    <xsl:text>#define </xsl:text>    <a href="#{$name}"><xsl:value-of select="$name"/></a>    <xsl:if test="arg">

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -