コンテンツから選択した値を使用して URL を計算することにより、テーマ内href
の特定の要素の sを変更しようとしています。<a>
ただし、 href 属性を変更する方法がまったくわかりません。ルールattributes
で属性が理解されていないようです。<replace>
最終的には、次のようなことができるようになりたいです。
<replace css:theme="a.languageswitcher" attributes="href">
<!-- use some XSL logic here to stitch together the new href -->
</replace>
したがって、次のルールは機能しますが、私には役に立ちません。
<copy attributes="href" css:theme="a.languageswitcher" css:content="#portal-logo" />
<merge attributes="href" css:theme="a.languageswitcher" css:content="#portal-logo" />
しかし、これはすでに機能していないattributes="href"
ため、このルールは無視されます。
<replace attributes="href" css:theme="a.languageswitcher" css:content="#portal-logo" />
一方、<a>
要素を最初から再構築しようとすると、@ross-patterson の質問で説明されているエラーに遭遇します: Diazo - Conditionally add a class to a theme element :
<replace theme="//a[@class='languageswitcher']">
<a class="languageswitcher">
<xsl:attribute name='href'>
foo
</xsl:attribute>
</a>
</replace>
エラーが発生します:
XSLTApplyError: xsl:attribute: Cannot add attributes to an element if children have been already added to the element.
これはどのように行うことができますか?