使用 XSLT,我正在生成一個表,其中包含ejerlejlighedXML 中每個 -tag 的一行(見下文)。
路徑:forandringer->ejerlejligheder->ejerlejlighed
每個ejerlejlighed-tag 包含一系列資訊,這些資訊應該以列的形式呈現,其中一個標簽是可選的:anvendelse.
問題:
我的客戶要求anvendelse僅當至少一個ejerlejlighed-tag 包含此資訊時才顯示 -tag 的列。
路徑 forandringer->ejerlejligheder->ejerlejlighed->anvendelse
<forandringer>
<aendrings>
<changesOrder>1</changesOrder>
<sagsoperationKode>EOPEF</sagsoperationKode>
<sagsoperationBetegnelse>Oprettelse af ejerlejlighedsf?llesskab</sagsoperationBetegnelse>
<hovedejendomBFEnr>3330122</hovedejendomBFEnr>
<hovedejendomType>SFE</hovedejendomType>
</aendrings>
<aendrings>
<changesOrder>2</changesOrder>
<sagsoperationKode>ENOPAH</sagsoperationKode>
<sagsoperationBetegnelse>Anden hjemmel*</sagsoperationBetegnelse>
<hovedejendomBFEnr>3330122</hovedejendomBFEnr>
<hovedejendomType>SFE</hovedejendomType>
<aktuelBFEnr>100229741</aktuelBFEnr>
<aktuelEJLnr>1</aktuelEJLnr>
<kommentar>§18</kommentar>
</aendrings>
<ejerlejligheder>
<mainPropertyBFENumber>3330122</mainPropertyBFENumber>
<ejerlejlighed>
<BFENumber>100229741</BFENumber>
<ejerlejlighedNr>1</ejerlejlighedNr>
<adresse>Ukendt adresse</adresse>
<areal>100</areal>
<fordelingstal>25/100</fordelingstal>
</ejerlejlighed>
<ejerlejlighed>
<BFENumber>100229742</BFENumber>
<ejerlejlighedNr>2</ejerlejlighedNr>
<adresse>Ukendt adresse</adresse>
<anvendelse>Erhverv</anvendelse>
<areal>200</areal>
<fordelingstal>25/100</fordelingstal>
</ejerlejlighed>
<ejerlejlighed>
<BFENumber>100229743</BFENumber>
<ejerlejlighedNr>3</ejerlejlighedNr>
<adresse>Ukendt adresse</adresse>
<areal>200</areal>
<fordelingstal>25/100</fordelingstal>
</ejerlejlighed>
<ejerlejlighed>
<BFENumber>100229744</BFENumber>
<ejerlejlighedNr>4</ejerlejlighedNr>
<adresse>Ukendt adresse</adresse>
<areal>200</areal>
<fordelingstal>25/100</fordelingstal>
</ejerlejlighed>
</ejerlejligheder>
</forandringer>
為了支持這一點,我創建了一個模板,如下所示。但是我不知道如何根據-tagshow-anvendelse是否存在來使引數的選擇陳述句為真或假。anvendelse
<xsl:call-template name="ejerlejlighed-table-only">
<xsl:with-param name="lejligheder" select="current-group()"/>
<xsl:with-param name="show-anvendelse" select="false()"/>
</xsl:call-template>
uj5u.com熱心網友回復:
你的問題的背景關系不清楚。您的描述中沒有任何內容表明需要分組和/或呼叫命名模板。
如果您為每個創建一行ejerlejlighed,并且您只想在至少一個ejerlejlighed有anvendelse孩子時創建一個特定列,那么顯然您希望對所有行進行一次此測驗,并在每一行中使用結果 - 這里是一個簡化的例子:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:template match="/forandringer">
<xsl:variable name="anvendelse" select="ejerlejligheder/ejerlejlighed/anvendelse" />
<table>
<xsl:for-each select="ejerlejligheder/ejerlejlighed">
<row>
<!-- mandatory columns -->
<xsl:if test="$anvendelse">
<optional-column>
<!-- some value -->
</optional-column>
</xsl:if>
</row>
</xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>
uj5u.com熱心網友回復:
試用exists(xpath)功能:
<xsl:call-template name="ejerlejlighed-table-only">
<xsl:with-param name="lejligheder" select="current-group()"/>
<xsl:with-param name="show-anvendelse" select="exists(anvendelse)"/>
</xsl:call-template>
uj5u.com熱心網友回復:
您可以計算anvendelse標簽的數量以查看是否至少有一個值:
<xsl:call-template name="ejerlejlighed-table-only">
<xsl:with-param name="lejligheder" select="current-group()"/>
<xsl:with-param name="show-anvendelse" select="count(//ejerlejlighed/anvendelse) > 0"/>
</xsl:call-template>
目前尚不清楚您如何呼叫ejerlejlighed-table-only模板,但請嘗試使用中最具體的選擇器count以避免性能損失。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460786.html
下一篇:C++逆向 可變引數Hook
