1
コントロールXMLファイルのワイルドカードをサードパーティのソフトウェアから置き換えたかったのです。XSLT - すべてのXML属性値を特定の属性値と照合して置き換えます
残念ながら、これらのワイルドカードは、このXMLファイルの属性値としても使用されます。
私はあなたの例を与える:
<control>
<some-tag id="$wildcard1$" version="3.14">
<another-tag id="second_level">stackoverflow rocks!</another-tag>
</some-tag>
<some-tag id="foo" version="$wildcard2$"/>
<some-tag id="bar" version="145.31.1"/>
</control>
を私は属性値にワイルドカードを交換するためのパラメータを持つ一般的な変換を書き込もうとしました。
私の最大の問題は、属性名がわからないことでした。だから私はXMLファイルのすべての属性に一致する必要があります。それは簡単ですしかし、どのように私は特定の値(例えば$ワイルドカード$)のすべての属性に一致しますか?
注 'こと:ここでは、属性値にワイルドカードを交換する私の完全なXSL-変換であります= "@ * [。= $ wildacard]" '。最初のテンプレートの代わりにXSLTバージョン3.0を実際に使用している場合は、単に 'を宣言できます。あなたの宣言されたparam名は 'name =" wildcard "'ですが、あなたのコードは '$ wildacard'を参照しています。 –