-1

複雑な XSLT ファイルのセットを調整する必要がありますが、空の段落タグが追加されているという問題があり、その理由がわかりません。for-each と関係があると思いますが、変換に p-Tag が含まれていないため、これらのタグがどこから来たのかわかりません。

これは、for-each で何かが空の場合に、xsl がそれ自体で追加できるものですか? 常に for-each の直後と for-each の終了の直前に取得されます (生成された出力を効果的に囲んでいます)。

タグが空の場合、for-each の内部を確認するにはどうすればよいですか?

ご協力ありがとうございました。

ファイルは主に次の構造になっています。

// Base File
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="library.xsl" />
<xsl:output method="html" encoding="utf-8" indent="yes"/>

// Some keys are defined here ...

<xsl:template name="base">                  
    <xsl:call-template name="someTemplate" />
    // More templates follow ...
</xsl:template>

</xsl:stylesheet>

library.xsl には、次のようなテンプレート「someTemplate」があります。

<xsl:template name="someTemplate">
     <xsl:for-each select="[very complicated XPath here]">
        // Some HTML generation, but absolutely withoug p-tags!!!!
     </xsl:for-each>
</xsl:template>

XSLT: How to exclude empty elements from my result?のスレッドを読みました。また、名前付きパターンを適用しようとしましたが (私のファイルは for-each を使用しているため)、うまくいきませんでした。

4

1 に答える 1

0

<p>いいえ、XSLT自体は要素を作成しません。<p>スタイルシート、またはインポート/インクルードされたスタイルシートに要素が見つからない場合、それらはソース ドキュメントからコピーされる可能性があります。

あなたが示すコードからはわかりにくいです。可能な限り最小の入力ファイルと XSLT 変換を最小限のルール セットに減らして、問題の再現を試みる必要があります。

于 2012-06-22T09:38:57.540 に答える