如何从xslt输出的html列表中删除多余的缩进?

问题描述 投票:0回答:1

我如何平等地缩进下面的每个“记录”?

来自较大文档的xml片段:

  <record>
    <entry>2020-06-14</entry>
    <entry>Fraser</entry>
    <entry>F</entry>
    <entry>20-29</entry>
    <entry>Lab-diagnosed</entry>
  </record>
  <record>
    <entry>2020-06-14</entry>
    <entry>Fraser</entry>
    <entry>F</entry>
    <entry>40-49</entry>
    <entry>Lab-diagnosed</entry>
  </record>
  <record>
    <entry>2020-06-14</entry>
    <entry>Fraser</entry>
    <entry>F</entry>
    <entry>20-29</entry>
    <entry>Lab-diagnosed</entry>
  </record>
  <record>
    <entry>2020-06-14</entry>
    <entry>Vancouver Coastal</entry>
    <entry>M</entry>
    <entry>30-39</entry>
    <entry>Lab-diagnosed</entry>
  </record>
  <record>
    <entry>2020-06-14</entry>
    <entry>Vancouver Coastal</entry>
    <entry>M</entry>
    <entry>89+</entry>
    <entry>Lab-diagnosed</entry>
  </record>

xslt

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
  <xsl:output indent="yes"/>
  <xsl:template match="csv">
    <html>
      <body>
        <ul>
          <li>
            <xsl:apply-templates/>
          </li>
        </ul>
      </body>
    </html>
  </xsl:template>
  <xsl:template match="record">
    <ul>
      <li>
        <xsl:apply-templates/>
      </li>
    </ul>
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="entry">
    <ul>
      <li>
        <xsl:apply-templates/>
      </li>
    </ul>
  </xsl:template>
</xsl:stylesheet>

输出片段:

            <ul>
               <li>

                  <ul>
                     <li>2020-06-14</li>
                  </ul>

                  <ul>
                     <li>Fraser</li>
                  </ul>

                  <ul>
                     <li>F</li>
                  </ul>

                  <ul>
                     <li>20-29</li>
                  </ul>

                  <ul>
                     <li>Lab-diagnosed</li>
                  </ul>

               </li>
            </ul>

            <ul>
               <li>2020-06-14</li>
            </ul>

            <ul>
               <li>Fraser</li>
            </ul>

            <ul>
               <li>F</li>
            </ul>

            <ul>
               <li>20-29</li>
            </ul>

            <ul>
               <li>Lab-diagnosed</li>
            </ul>


            <ul>
               <li>

                  <ul>
                     <li>2020-06-14</li>
                  </ul>

                  <ul>
                     <li>Vancouver Coastal</li>
                  </ul>

                  <ul>
                     <li>M</li>
                  </ul>

                  <ul>
                     <li>30-39</li>
                  </ul>

                  <ul>
                     <li>Lab-diagnosed</li>
                  </ul>

               </li>
            </ul>

            <ul>
               <li>2020-06-14</li>
            </ul>

            <ul>
               <li>Vancouver Coastal</li>
            </ul>

            <ul>
               <li>M</li>
            </ul>

            <ul>
               <li>30-39</li>
            </ul>

            <ul>
               <li>Lab-diagnosed</li>
            </ul>


            <ul>
               <li>

                  <ul>
                     <li>2020-06-14</li>
                  </ul>

                  <ul>
                     <li>Vancouver Coastal</li>
                  </ul>

                  <ul>
                     <li>M</li>
                  </ul>

                  <ul>
                     <li>89+</li>
                  </ul>

                  <ul>
                     <li>Lab-diagnosed</li>
                  </ul>

               </li>
            </ul>

            <ul>
               <li>2020-06-14</li>
            </ul>

            <ul>
               <li>Vancouver Coastal</li>
            </ul>

            <ul>
               <li>M</li>
            </ul>

            <ul>
               <li>89+</li>
            </ul>

            <ul>
               <li>Lab-diagnosed</li>
            </ul>


         </li>
      </ul>

但是,似乎错开了,所以上面的所有其他“记录”都缩进了。为什么会这样,以及如何解决它,以使每条记录都相同地缩进?

html xml xslt xml-parsing text-processing
1个回答
0
投票

删除了多余的<ul>,看起来还可以:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">
  <xsl:output indent="yes"/>
  <xsl:template match="csv">
    <html>
      <body>
        <ul>
          <li>
            <xsl:apply-templates/>
          </li>
        </ul>
      </body>
    </html>
  </xsl:template>
  <xsl:template match="record">
    <li>
      <xsl:apply-templates/>
    </li>
    <xsl:apply-templates/>
  </xsl:template>
  <xsl:template match="entry">
    <ul>
      <li>
        <xsl:apply-templates/>
      </li>
    </ul>
  </xsl:template>
</xsl:stylesheet>

(实际上,缩进仍然很麻烦-不知道为什么)

© www.soinside.com 2019 - 2024. All rights reserved.