2

XSLT 1.0 スタイルシート (Web ブラウザーによって処理される) を使用して、複雑なクエリ文字列で相対 URL を生成しようとしています。

<xsl:variable name="queryLn">sql</xsl:variable>
<xsl:variable name="queryName">ask</xsl:variable>
<a>
    <xsl:attribute name="href">
        <xsl:text>path?action=exec&queryLn=</xsl:text>
        <xsl:value-of select="$queryLn" />
    </xsl:attribute>
    <xsl:value-of select="$queryName" />
</a>

簡単にするために、変数の割り当て方法を変更しました。実際のコードでは、変換される XML から同様の値が割り当てられます。結果のドキュメントにこれを含めたい:

<a href="path?action=exec&queryLn=sql>ask</a>

Chrome Browswer で のようなエラー メッセージが表示されます。ここで、XX と YY は開始タグerror on line XX at column YY: EntityRef: expecting ';'の直後を指します。要素に属性を<xsl:text>追加しようとしましたが、効果がありません。disable-output-escaping="yes"<xsl:text>

私は何を間違っていますか?

4

2 に答える 2

1

使用:

<a href="path?action=exec&amp;queryLn={$queryLn}"><xsl:value-of select="$queryName"/></a>

あなたのコードには次の問題があります:

  1. エスケープされてい&ない -- である必要があります&amp;

  2. 不要-- 可能な場合は常にAVT -s (属性 - 値テンプレート) を<xsl:attribute>使用することをお勧めします。

于 2012-11-23T22:44:43.720 に答える