0

これは以前から気になっていたのですが、どうやって回避したか思い出せません。EXSLT は、XML の文字列をノード設定するときに属性を削除しているようです。

これは不自然な例です (簡潔にするために XSLT スタイルシート タグを削除しましたが、EXSLT の共通ライブラリが名前空間に読み込まれていますexsl)。

XML

<xml>
    <node />
    <node />
    <node />
</xml>

XSLT:

<xsl:template match="/">
    <xsl:variable name='nodeset' select='exsl:node-set(xml/node)' />
    <xsl:copy-of select='$nodeset' />
</xsl:template>

<xsl:template match='node'><node foo='bar' /></xsl:template>

結果

<node/><node/><node/>

デモ プレイグラウンド(出力ソースを参照)

4

2 に答える 2

-1

Martin Honnen の回答に追加すべきもう 1 つのポイント: EXSLT は仕様であり、実装ではありません。バグがあるとすれば、それは仕様ではなく実装にあります。そのため、使用している実装を知る必要があります。

ただし、バグの証拠を提供していません。exslt:node-set() が意図していることについて混乱しているようです。

于 2013-09-23T21:27:44.863 に答える