模板,虽然输入一次,但调用了两次

用户名

我有下面的XML文档。

<?xml version="1.0" encoding="UTF-8"?>
<toa>
<title>TABLE OF PRC LEGISLATION</title>
<subtitle>All references are to paragraph number</subtitle>
<toa-section>
<toa-div level="div1">
<title/>
<toa-entry>
<primary-entry><entry-name>Administrative Penalties Law</entry-name></primary-entry>
<secondary-entry><entry-name>Art 8</entry-name><pgs>14.026</pgs></secondary-entry>
<secondary-entry><entry-name>Art 20</entry-name><pgs>14.026</pgs></secondary-entry>
<secondary-entry><entry-name>Art 41</entry-name><pgs>14.026</pgs></secondary-entry>
<secondary-entry><entry-name>Art 44</entry-name><pgs>14.026</pgs></secondary-entry>
<secondary-entry><entry-name>Art 45</entry-name><pgs>14.026</pgs></secondary-entry>
<secondary-entry><entry-name>Art 51</entry-name><pgs>14.026</pgs></secondary-entry>
</toa-entry>
<toa-entry>
<primary-entry><entry-name>Civil Procedure Law</entry-name></primary-entry>
<secondary-entry><entry-name>Ch 19</entry-name><pgs>14.002, 14.006, 14.007, 14.012</pgs></secondary-entry>
<secondary-entry><entry-name>Art 40</entry-name><pgs>14.013</pgs></secondary-entry>
<secondary-entry><entry-name>Art 76</entry-name><pgs>14.016</pgs></secondary-entry>
<secondary-entry><entry-name>Art 92</entry-name><pgs>14.025</pgs></secondary-entry>
<secondary-entry><entry-name>Art 93</entry-name><pgs>14.025</pgs></secondary-entry>
<secondary-entry><entry-name>Art 94</entry-name><pgs>14.025</pgs></secondary-entry>
<secondary-entry><entry-name>Art 112</entry-name><pgs>14.014</pgs></secondary-entry>
<secondary-entry><entry-name>Art 199</entry-name><pgs>14.006, 14.007, 14.008</pgs></secondary-entry>
<secondary-entry><entry-name>Art 206</entry-name><pgs>14.006</pgs></secondary-entry>
</toa-entry>
</toa-div>
</toa-section>
</toa>

当我应用下面的XSL。数据重复两次。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xsl:output method="html" indent="yes"/>

    <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">&lt;!DOCTYPE html&gt;&#xD;</xsl:text>
        <html>
            <head>
                <xsl:text disable-output-escaping="yes"><![CDATA[</meta>]]></xsl:text>
                <title>TABLE OF LEGISLATION</title>
                <link rel="stylesheet" href="C:\Users\u0138039\Desktop\Proview\HK\In Progress\Company Law-Insolvency 2014 Edition_xml\XSLT\main.css" type="text/css" /><xsl:text disable-output-escaping="yes"><![CDATA[</link>]]></xsl:text>
            </head>
            <body>
                <section class="tr_toa">
                    <xsl:call-template name="toa"></xsl:call-template>
                </section>
            </body>
        </html>
    </xsl:template>

    <xsl:template name="toa">
        <div class="toa">
            <a name="CLI_TOL_02"> </a>
            <xsl:apply-templates />
        </div>
    </xsl:template>
    <xsl:template match="toa/title">
        <div class="toa-title">
            <xsl:value-of select="."/><xsl:text disable-output-escaping="yes"><![CDATA[<br />]]></xsl:text>

        </div>
        <div class="para align-center">

            <span class="font-style-bold">
                        <xsl:value-of select="following-sibling::subtitle[1]"/>
            </span>
</div>
<xsl:text disable-output-escaping="yes"><![CDATA[<br /><br />]]></xsl:text>
        <xsl:apply-templates select="//toa-section"/>
    </xsl:template>

    <xsl:template match="toa-section">
        <div class="toa-section">
            <xsl:for-each select="current()/toa-div">
                <xsl:call-template name="toa-div" />
            </xsl:for-each>
        </div>
    </xsl:template>
    <xsl:template match="toa-div" name="toa-div">
        <xsl:variable name="divClass" select="concat('toa-div level-', current()/@level)"></xsl:variable>
        <div class="{$divClass}">
            <!--<div class="toa-div-title">
                <xsl:variable name="fontStyle">
                    <xsl:value-of select="concat('font-style-',title/content-style/@font-style)"/>
                </xsl:variable>
                <span class="{$fontStyle}">
                    <xsl:value-of select="current()/title/content-style/text()"/>
                </span>
            </div>-->
            <xsl:apply-templates select="toa-entry" />
        </div>
    </xsl:template>

    <xsl:template match="toa-entry">
        <xsl:choose>
            <xsl:when test="not(preceding-sibling::toa-entry[1]/primary-entry/secondary-entry/node()) and position() != 1">

            </xsl:when>
            <xsl:otherwise>
                <table class="toa-entry">
                    <tbody>
                        <xsl:apply-templates select="primary-entry" />
                        <xsl:if test="not(current()/primary-entry/secondary-entry/node())">
                            <xsl:apply-templates select="following-sibling::toa-entry[1]" mode="next"/>
                        </xsl:if>
                    </tbody>
                </table>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template match="toa-entry" mode="next">
        <xsl:apply-templates  select="primary-entry"/>
        <xsl:if test="not(current()/primary-entry/secondary-entry/node())">
            <xsl:apply-templates select="following-sibling::toa-entry[1]" mode="next"/>
        </xsl:if>
    </xsl:template>

    <xsl:template match="primary-entry">
        <tr class="primary-entry">
            <td class="entry-name">
             <xsl:value-of select="current()/entry-name/text()"/>
                    </td>

                  <xsl:if test="current()/pgs/node()">
            <xsl:apply-templates select="pgs"/>
        </xsl:if>
        </tr>

        <xsl:if test="following-sibling::secondary-entry/node()">
            <xsl:for-each select="following-sibling::secondary-entry">
                <tr class="secondary-entry">
                    <td class="entry-name">
                        <xsl:value-of select="current()/entry-name/text()"/>
                    </td>

                  <xsl:if test="current()/pgs/node()">
            <xsl:apply-templates select="pgs"/>
        </xsl:if>

                </tr>
            </xsl:for-each>

        </xsl:if>

    </xsl:template>


<xsl:template match="pgs">
    <td class="pgs">
       <xsl:analyze-string select="." regex="[^,\s]+">
            <xsl:matching-substring>
                <xsl:variable name="range" select="tokenize(.,'—')"/>
                <xsl:variable name="pg" select="tokenize(.,'/')"/>
                <xsl:choose>
                    <xsl:when test="contains($pg[3],'—')">
                        <xsl:variable name="range-pg" as="item()*">
                            <xsl:for-each select="$range">
                                <xsl:sequence select="tokenize(.,'/')"/>
                            </xsl:for-each>
                        </xsl:variable>
                        <xsl:for-each select="xs:integer($range-pg[3]) to xs:integer($range-pg[6])">
                            <a href="er:#CLI_CH_{
                                if (string(number($range-pg[1]))!='NaN') then 
                                format-number(number($range-pg[1]),'00') 
                                else 
                                $range-pg[1]}/P{string-join($range-pg[position()=(1,2)],'/')}/{.}">
                                <xsl:value-of select="concat(string-join($range-pg[position()=(1,2)],'/'),'/',.)"/>
                            </a>
                            <xsl:text>, </xsl:text>
                        </xsl:for-each>
                    </xsl:when>
                    <xsl:otherwise>
                        <a href="er:#CLI_CH_{
                            if (string(number($pg[1]))!='NaN') then 
                            format-number(number($pg[1]),'00') 
                            else 
                            $pg[1]}/P{translate($pg[1],'.','-')}">
                            <xsl:value-of select="."/>
                        </a>                            
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:matching-substring>
            <xsl:non-matching-substring>
                <xsl:value-of select="."/>
            </xsl:non-matching-substring>
        </xsl:analyze-string>           
    </td>
</xsl:template>


</xsl:stylesheet>

我得到的输出如下。

<!DOCTYPE html>
<html xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta><title>TABLE OF LEGISLATION</title><link rel="stylesheet" href="C:\Users\u0138039\Desktop\Proview\HK\In Progress\Company Law-Insolvency 2014 Edition_xml\XSLT\main.css" type="text/css"></link></head>
    <body>
        <section class="tr_toa">
            <div class="toa">
                <a name="CLI_TOL_02"></a>
<div class="toa-title">TABLE OF PRC LEGISLATION<br /></div><div class="para align-center">
                    <span class="font-style-bold">All references are to paragraph number</span>
                </div><br /><br /><div class="toa-section">
                    <div class="toa-div level-div1">
                        <table class="toa-entry">
                            <tbody>
                                <tr class="primary-entry">
                                    <td class="entry-name">Administrative Penalties Law</td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 8</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 20</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 41</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 44</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 45</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 51</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="primary-entry">
                                    <td class="entry-name">Civil Procedure Law</td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Ch 19</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-002">14.002</a>, <a href="er:#CLI_CH_14/P14-006">14.006</a>, <a href="er:#CLI_CH_14/P14-007">14.007</a>, <a href="er:#CLI_CH_14/P14-012">14.012</a></td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 40</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-013">14.013</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 76</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-016">14.016</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 92</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 93</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 94</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 112</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-014">14.014</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 199</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-006">14.006</a>, <a href="er:#CLI_CH_14/P14-007">14.007</a>, <a href="er:#CLI_CH_14/P14-008">14.008</a></td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 206</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-006">14.006</a>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
All references are to paragraph number
<div class="toa-section">
                    <div class="toa-div level-div1">
                        <table class="toa-entry">
                            <tbody>
                                <tr class="primary-entry">
                                    <td class="entry-name">Administrative Penalties Law</td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 8</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 20</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 41</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 44</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 45</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 51</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-026">14.026</a>
                                    </td>
                                </tr>
                                <tr class="primary-entry">
                                    <td class="entry-name">Civil Procedure Law</td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Ch 19</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-002">14.002</a>, <a href="er:#CLI_CH_14/P14-006">14.006</a>, <a href="er:#CLI_CH_14/P14-007">14.007</a>, <a href="er:#CLI_CH_14/P14-012">14.012</a></td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 40</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-013">14.013</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 76</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-016">14.016</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 92</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 93</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 94</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-025">14.025</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 112</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-014">14.014</a>
                                    </td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 199</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-006">14.006</a>, <a href="er:#CLI_CH_14/P14-007">14.007</a>, <a href="er:#CLI_CH_14/P14-008">14.008</a></td>
                                </tr>
                                <tr class="secondary-entry">
                                    <td class="entry-name">Art 206</td>
                                    <td class="pgs">
                                        <a href="er:#CLI_CH_14/P14-006">14.006</a>
                                    </td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </div>
</div>
        </section>
    </body>
</html>

请让我知道我在XSLT中出错的地方,以及为什么输出中重复内容。

谢谢

乔尔·兰森(Joel M.Lamsen)

罪魁祸首是这个

<xsl:apply-templates select="//toa-section"/>

删除它,您将不会得到任何重复。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

函数(方法)虽然只被调用一次,但正在执行两次

来自分类Dev

方法被调用两次,即使它被调用了一次

来自分类Dev

JComboBox itemStateChanged事件一次调用两次

来自分类Dev

尽管我使用XMLHttpRequest在JavaScript中调用了一次,但为什么api响应两次?

来自分类Dev

为什么我第一次打开Activity时onCreate在我的Fragment中调用了两次

来自分类Dev

关于两次调用Javascript函数的问题,一次调用一次结果

来自分类Dev

订户OnComplete调用了两次

来自分类Dev

Spring HandlerInterceptor调用了两次

来自分类Dev

片段-onGlobalLayout()调用了两次

来自分类Dev

订户OnComplete调用了两次

来自分类Dev

didFinishLaunchingWithOptions调用了两次

来自分类Dev

RoomDatabase onCreate 调用了两次

来自分类Dev

如果在另一个方法中两次调用了该方法,该如何在第一次调用时断言?

来自分类Dev

单击函数被调用两次,但仅在第一次单击时被调用?

来自分类Dev

为什么析构函数被调用两次而构造函数仅被调用一次?

来自分类Dev

save()被调用一次,但是第一次在猫鼬中执行两次

来自分类Dev

While循环要求输入两次,而不是第一次中断

来自分类Dev

为什么Equals方法只被两次调用一次?

来自分类Dev

C ++函数运行两次,但仅调用一次

来自分类Dev

在XSL中一次选择调用两次translate()

来自分类Dev

多态方法只调用一次就运行两次

来自分类Dev

UIPageViewController的DataSource代表连续一次被调用两次

来自分类Dev

即使被调用一次,方法也会被拦截两次

来自分类Dev

两次调用方法类;一次用于行,然后用于列

来自分类Dev

WPF MenuItem Click事件被调用两次,而不是一次

来自分类Dev

API调用两次,而useEffect触发一次。ReactJS / Javascript

来自分类Dev

窗口滚动始终在IE8中调用两次,而不是一次

来自分类Dev

两次调用方法类;一次用于行,然后用于列

来自分类Dev

无法调用$ stateProvider,两次更新视图(它仅在第一次工作)

Related 相关文章

  1. 1

    函数(方法)虽然只被调用一次,但正在执行两次

  2. 2

    方法被调用两次,即使它被调用了一次

  3. 3

    JComboBox itemStateChanged事件一次调用两次

  4. 4

    尽管我使用XMLHttpRequest在JavaScript中调用了一次,但为什么api响应两次?

  5. 5

    为什么我第一次打开Activity时onCreate在我的Fragment中调用了两次

  6. 6

    关于两次调用Javascript函数的问题,一次调用一次结果

  7. 7

    订户OnComplete调用了两次

  8. 8

    Spring HandlerInterceptor调用了两次

  9. 9

    片段-onGlobalLayout()调用了两次

  10. 10

    订户OnComplete调用了两次

  11. 11

    didFinishLaunchingWithOptions调用了两次

  12. 12

    RoomDatabase onCreate 调用了两次

  13. 13

    如果在另一个方法中两次调用了该方法,该如何在第一次调用时断言?

  14. 14

    单击函数被调用两次,但仅在第一次单击时被调用?

  15. 15

    为什么析构函数被调用两次而构造函数仅被调用一次?

  16. 16

    save()被调用一次,但是第一次在猫鼬中执行两次

  17. 17

    While循环要求输入两次,而不是第一次中断

  18. 18

    为什么Equals方法只被两次调用一次?

  19. 19

    C ++函数运行两次,但仅调用一次

  20. 20

    在XSL中一次选择调用两次translate()

  21. 21

    多态方法只调用一次就运行两次

  22. 22

    UIPageViewController的DataSource代表连续一次被调用两次

  23. 23

    即使被调用一次,方法也会被拦截两次

  24. 24

    两次调用方法类;一次用于行,然后用于列

  25. 25

    WPF MenuItem Click事件被调用两次,而不是一次

  26. 26

    API调用两次,而useEffect触发一次。ReactJS / Javascript

  27. 27

    窗口滚动始终在IE8中调用两次,而不是一次

  28. 28

    两次调用方法类;一次用于行,然后用于列

  29. 29

    无法调用$ stateProvider,两次更新视图(它仅在第一次工作)

热门标签

归档