Xslt 创建html表时避免重复

Xslt 创建html表时避免重复,xslt,Xslt,我绝对是XSLT的初学者。我正在使用xslt将数据转换为HTML表。我需要帮助以避免重复 我尝试了好几种修复方法,但都没有奏效 这是我的XML文件 <?xml version="1.0" encoding="UTF-8"?> <root> <Identifikasjon> <Internref>12909524760066</Internref> </Identifikasjon> <Na

我绝对是XSLT的初学者。我正在使用xslt将数据转换为HTML表。我需要帮助以避免重复

我尝试了好几种修复方法,但都没有奏效

这是我的XML文件

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <Identifikasjon>
      <Internref>12909524760066</Internref>
   </Identifikasjon>
   <NavnAdresse>
      <Status>0</Status>
      <StatusDato>2009-10-27</StatusDato>
      <Fodselsdato>1901-01-01</Fodselsdato>
      <Navn>DEMO PERSON</Navn>
      <Adresse>TESTEGATA 76</Adresse>
      <Postnr>4950</Postnr>
      <Poststed>RISØR</Poststed>
      <Kommune>RISØR</Kommune>
      <Fylke>AUST-AGDER</Fylke>
      <Alder>118</Alder>
      <Kjonn>MANN</Kjonn>
   </NavnAdresse>
   <BetaDetaljer>
      <RegistrertDato>2001-12-10</RegistrertDato>
      <BetaGruppeKode>NE</BetaGruppeKode>
      <BetaGruppeTekst>Negative</BetaGruppeTekst>
      <BetaType>UL</BetaType>
      <BetaTekst>UTLEGG</BetaTekst>
      <BetaBelop>2111</BetaBelop>
      <KildeKode>LØSØ</KildeKode>
      <KildeTekst>LØSØREREGISTERET</KildeTekst>
      <KildeReferansenr>12345</KildeReferansenr>
      <Kreditor>TESTKREDITOREN</Kreditor>
   </BetaDetaljer>
   <Ligning>
      <SkatteAr>2018</SkatteAr>
      <Formue>1111111</Formue>
      <EndringFormue>117.39</EndringFormue>
      <Inntekt>511111</Inntekt>
      <EndringInntekt>0.0</EndringInntekt>
      <Skatt>111111</Skatt>
      <SkatteKlasse>1E</SkatteKlasse>
      <Kommunenr>301</Kommunenr>
      <KommuneNavn>OSLO</KommuneNavn>
      <BruttoInntekt>0</BruttoInntekt>
      <Gjeldsgrad1>0.0</Gjeldsgrad1>
      <Gjeldsgrad2>0.0</Gjeldsgrad2>
   </Ligning>
   <Ligning>
      <SkatteAr>2017</SkatteAr>
      <Formue>511111</Formue>
      <EndringFormue>0.0</EndringFormue>
      <Inntekt>511111</Inntekt>
      <EndringInntekt>0.0</EndringInntekt>
      <Skatt>111111</Skatt>
      <SkatteKlasse>1E</SkatteKlasse>
      <Kommunenr>1534</Kommunenr>
      <KommuneNavn>HARAM</KommuneNavn>
      <BruttoInntekt>0</BruttoInntekt>
      <Gjeldsgrad1>0.0</Gjeldsgrad1>
      <Gjeldsgrad2>0.0</Gjeldsgrad2>
   </Ligning>
   <Ligning>
      <SkatteAr>2016</SkatteAr>
      <Formue>511111</Formue>
      <EndringFormue>0.0</EndringFormue>
      <Inntekt>511111</Inntekt>
      <EndringInntekt>0.0</EndringInntekt>
      <Skatt>111111</Skatt>
      <SkatteKlasse>1E</SkatteKlasse>
      <Kommunenr>1534</Kommunenr>
      <KommuneNavn>HARAM</KommuneNavn>
      <BruttoInntekt>0</BruttoInntekt>
      <Gjeldsgrad1>0.0</Gjeldsgrad1>
      <Gjeldsgrad2>0.0</Gjeldsgrad2>
   </Ligning>
   <NaringsInteresser>
      <Orgnr>937340303</Orgnr>
      <StatusKode>A</StatusKode>
      <StatusTekst>Aktivt</StatusTekst>
      <Navn>SVAR DIREKTE AS</Navn>
      <SelskForm>AS</SelskForm>
      <Rolle>Eier</Rolle>
      <Eierandel>5.0</Eierandel>
   </NaringsInteresser>
   <NaringsInteresser>
      <Orgnr>931024280</Orgnr>
      <StatusKode>A</StatusKode>
      <StatusTekst>Aktivt</StatusTekst>
      <Navn>HELT NYTT FORETAK AS</Navn>
      <SelskForm>AS</SelskForm>
      <Rolle>Ansvar</Rolle>
      <Eierandel>0.0</Eierandel>
      <VervKode>3</VervKode>
      <VervTekst>Styremedlem</VervTekst>
   </NaringsInteresser>
   <Meldinger>
      <MeldingsKode>30</MeldingsKode>
      <MeldingsTekst>Navn/adresse-historikk ikke funnet på forespurt objekt.</MeldingsTekst>
   </Meldinger>
</root>

12909524760066
0
2009-10-27
1901-01-01
演示人员


我想停止重复台词。(对齐)

您的问题中没有明确描述输入XML的结构,因此很难判断如何更改代码。您有一个模板匹配
match=“All”
,它试图处理该
All
元素中的所有
,但您的输入示例不显示任何
All
元素。然后,在
match=“Ligning”
的模板中,您有
,它试图处理
元素中的所有
对齐
元素,您也没有显示该元素。但这看起来就像您处理元素两次一样。使用推或拉。谢谢。我更新了我的XML文件。我添加了我所指的完整XML文件。我只需要一个
来对齐包含三行数据的表,这三行数据包含XML中三个节点的数据。
在XML输入的上下文中似乎没有任何意义,因为我在其中找不到任何
All
元素。如果您有多个
对齐
元素,但需要一个表来显示它们,那么使用
match=“Ligning”
并在其中创建一个表是没有意义的,因为您显然会以这种方式为每个处理过的元素创建一个表。因此,在与父元素匹配的模板中创建表,然后在用于对齐的模板中只创建一个
tr
@MartinHonnen谢谢。明白你的意思了。我将在父元素中添加所有对齐的
元素,并将模板与该元素匹配。非常感谢你。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" encoding="UTF-8" />
  <xsl:strip-space elements="*" />

  <xsl:template match="/">
    <html>

      <head>
        <title>Wash Result</title>
      </head>

      <body>
        <h2>Wash Result</h2>
        <xsl:apply-templates />
      </body>

    </html>
  </xsl:template>

  <xsl:template match="All">

    <xsl:apply-templates select="Identifikasjon" />
    <xsl:apply-templates select="Ligning" />

  </xsl:template>

  <xsl:template match="Identifikasjon">
    <div class="accordion">
      <div class="option">
        <input type="checkbox" id="toggle1" class="toggle" />
        <label class="title" for="toggle1">
          Identifikasjon
        </label>
        <div class="content ">
          <div class="display-inline">
            <p>
              <xsl:if test="Orgnr">
                <span class="mr-3">
                  Orgnr: <strong>
                    <xsl:value-of select="Orgnr" />
                  </strong>
                </span>
              </xsl:if>
              <xsl:if test="Dunsnr">
                <span>
                  Dunsnr: <strong>
                    <xsl:value-of select="Dunsnr" />
                  </strong>
                </span>
              </xsl:if>
              <xsl:if test="Internref">
                <span>
                  Internref: <strong>
                    <xsl:value-of select="Internref" />
                  </strong>
                </span>
              </xsl:if>
            </p>
          </div>
        </div>
      </div>
    </div>
  </xsl:template>


  <xsl:template match="Ligning">
    <div class="accordion">
      <div class="option">
        <input type="checkbox" id="toggleLigning" class="toggle" />
        <label class="title" for="toggleLigning">
          Ligning
        </label>
        <div class="content">
          <table border="1">
            <tr>
              <th>SkatteAr</th>
              <th>Formue</th>
              <th>EndringFormue</th>
              <th>Inntekt</th>
              <th>EndringInntekt</th>
              <th>Skatt</th>
              <th>SkatteKlasse</th>
              <th>Kommunenr</th>
              <th>KommuneNavn</th>
              <th>BruttoInntekt</th>
              <th>Gjeldsgrad1</th>
              <th>Gjeldsgrad2</th>

            </tr>
            <xsl:for-each select="/root/Ligning">

              <tr>
                <td>
                  <xsl:value-of select="SkatteAr" />
                </td>
                <td>
                  <xsl:value-of select="Formue" />
                </td>
                <td>
                  <xsl:value-of select="EndringFormue" />
                </td>
                <td>
                  <xsl:value-of select="Inntekt" />
                </td>
                <td>
                  <xsl:value-of select="EndringInntekt" />
                </td>
                <td>
                  <xsl:value-of select="Skatt" />
                </td>
                <td>
                  <xsl:value-of select="SkatteKlasse" />
                </td>
                <td>
                  <xsl:value-of select="Kommunenr" />
                </td>
                <td>
                  <xsl:value-of select="KommuneNavn" />
                </td>
                <td>
                  <xsl:value-of select="BruttoInntekt" />
                </td>
                <td>
                  <xsl:value-of select="Gjeldsgrad1" />
                </td>
                <td>
                  <xsl:value-of select="Gjeldsgrad2" />
                </td>

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

          </table>
        </div>
      </div>
    </div>
  </xsl:template>