xsltを使用してタグが存在するかどうかを確認するにはどうすればよいですか? 違いは、私が作成しているXML(入力XMLではない)をチェックしたいということです。XSLT:出力されたXMLにタグが存在するかどうかを確認します
キンダのように<xsl:when test="phone">
ですが、代わりに出力します。
xsltを使用してタグが存在するかどうかを確認するにはどうすればよいですか? 違いは、私が作成しているXML(入力XMLではない)をチェックしたいということです。XSLT:出力されたXMLにタグが存在するかどうかを確認します
キンダのように<xsl:when test="phone">
ですが、代わりに出力します。
スタイルシートの結果ツリーは書き込み専用です。それを読むには、別の変換から変換を行うことができます。変換のパイプラインは、有用な設計パターンです。しかし、あなたは解決しようとしている問題は何も言わなかった。
2つのスタイルシートをチェーン化しない限り、2番目のスタイルシートは、入力として最初のスタイルシートの結果を取得するか、たとえば
<xsl:variable name="temp-result">
<xsl:apply-templates/>
<xsl:variable>
<xsl:if test="$temp-result//phone">
<xsl:copy-of select="$temp-result"/>
</xsl:if>
私は方法があるとは思わない。変数を使った上記のアプローチは、XSLT 2.0では1.0の場合、test="exsl:node-set($temp-result)//phone"
にexsl:node-set
のような拡張関数を使う必要があることに注意してください。
結果がスキーマのインスタンスであることを確認できるように、結果をスキーマに対して検証することで、スキーマ対応XSLT 2.0に3つ目のオプションが存在する可能性があります。
XSLTを使用すると、入力文書の選択とテストが実行されます。入力を変換して出力を作成します。あなたの質問は、node-set変数の要素の存在をテストしない限り、私にはあまり意味がありません。その場合は、とにかく入力を確認するのと同じ方法を使用します。 –