2

「ステップイン」についてはわかりませんxsl:variable。誰かが「ステップ」を説明できれば幸いです。

次の XSLT には、ルート要素に 2 つの要素が含まれているだけです。

xsl:output出力形式を定義します。 xsl:variable変数を定義します。

このコードはどのように解析されますか? このコードは何を表していますか?

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:saxon="http://saxon.sf.net/"
  version="2.0"
  extension-element-prefixes="saxon">

  <xsl:output method="html" omit-xml-declaration="yes"
    encoding="utf-8" indent="no"/>

  <!-- <xsl:output method="xml" omit-xml-declaration="no"
    encoding="utf-8" indent="no"/> -->

  <xsl:variable name="processes">
    <!-- exclude elements with @specific-use='print-only' -->
    <step>prep/jpub3-webfilter.xsl</step>
    <!-- format citations in NLM/PMC format -->
    <step>citations-prep/jpub3-PMCcit.xsl</step>
    <!-- convert into HTML for display -->
    <step>main/jpub3-html.xsl</step>
  </xsl:variable>

  <xsl:include href="main/shell-utility.xsl"/>

</xsl:stylesheet>

補足「shell-utility.xsl」

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:saxon="http://saxon.sf.net/"
  version="2.0"
  extension-element-prefixes="saxon">

  <!-- This stylesheet does not stand alone! It is a component
       to be called into XSLT 2.0 shell stylesheets. -->

  <xsl:variable name="document" select="/" saxon:assignable="yes"/>

  <xsl:param name="runtime-params">
    <base-dir>
      <xsl:value-of
        select="replace(base-uri(/), '/[^/]+$','')"/>     
    </base-dir>
  </xsl:param>

  <xsl:template match="/">
    <xsl:for-each select="$processes/step/concat('../',.)">
      <xsl:message>
        <xsl:text>&#xA;... Applying </xsl:text>
        <xsl:value-of select="."/>
      </xsl:message>
      <saxon:assign name="document"
        select="saxon:transform(
                  saxon:compile-stylesheet(doc(.)),
                  $document,
                  $runtime-params/* )"/>
      <!-- A third argument to saxon:transform could specify
           runtime parameters for any (or all) steps -->
    </xsl:for-each>
    <xsl:sequence select="$document"/>
    <xsl:message>&#xA;... Done</xsl:message>
  </xsl:template>

</xsl:stylesheet>
4

2 に答える 2

3

このコードは、という変数を作成し、それに3つの要素processesを含むノードリストを割り当てます。XSLパーサーに関する限り、要素自体には意味がありません<step><step>

于 2012-05-24T01:33:24.310 に答える
1

このコードは何を表していますか?

 <xsl:variable name="processes">     
  <!-- exclude elements with @specific-use='print-only' -->     
  <step>prep/jpub3-webfilter.xsl</step>     
  <!-- format citations in NLM/PMC format -->     
  <step>citations-prep/jpub3-PMCcit.xsl</step>     
  <!-- convert into HTML for display -->     
  <step>main/jpub3-html.xsl</step>   
 </xsl:variable>

processesこれは、名前と型のグローバル変数の定義です。その値は、ドキュメント ノードの子である 3 つの要素をdocument-node()含む一時ツリーです。step

この変数がどのように使用されるかは、次の場所に含まれるスタイルシート モジュールのコードによって異なります main/shell-utility.xslprocessesこのコードは提供されていないため、変数の実際の使用法については何も言えません。

于 2012-05-24T03:48:44.450 に答える