私は子要素にいくつかの値を属性にも含むXMLファイルを持っています。 特定の値が一致したときにテキストを置き換えたい場合、どのように達成できますか? xlst:translate()
機能を試しました。しかし、私はこの機能をxmlの各要素や属性に対して使用することはできません。 ワンショットで値を置換/変換する方法はありますか?xsltを使用してxmlのテキストを置き換えます。
<?xml version="1.0" encoding="UTF-8"?>
<Employee>
<Name>Emp1</Name>
<Age>40</Age>
<sex>M</sex>
<Address>Canada</Address>
<PersonalInformation>
<Country>Canada</country>
<Street1>KO 92</Street1>
</PersonalInformation>
</Employee>
出力:出力の
<?xml version="1.0" encoding="UTF-8"?>
<Employee>
<Name>Emp1</Name>
<Age>40</Age>
<sex>M</sex>
<Address>UnitedStates</Address>
<PersonalInformation>
<Country>UnitedStates</country>
<Street1>KO 92</Street1>
</PersonalInformation>
</Employee>
は、カナダからUnitedStatesのにテキストを置き換えます。 したがって、どの要素でもxslt:transform()関数を使用することなく、レベルノードに関係なく、カナダのテキストをUnitedStatesに置き換えることができます。 これまで私は 'Canada'を見つけましたが、私はxml全体で 'UnitedStates'に代わることができます。 これをどのように達成できますか?
あなたはあなたが達成しようとしていることを明記してください。入力と希望出力があるサンプルコードを私たちに与えると、これは簡単に答えることができます。また、XSLT 2.0を使用することも可能ですか?その場合、['fn:replace()'](http://www.w3.org/TR/xpath-functions/#func-replace) –
優れた質問、+1を使用することができます。パラメータで複数のrep-targetsを受け入れ、任意の属性またはテキストノードで複数の置換を実行する完全なXSLT 1.0ソリューションについては、私の答えを参照してください。また、XSLT 2.0ソリューションを使用する違いが指定されています。 –
@Per T、ありがとう、私はXSLT 1.0を使用しています。出力は非常に簡単です。任意の入力XMLに対して、要素名を指定せずにテキストを置き換える必要があります。テキストが一致している場合のみ、すべての子要素の置換を適用する必要があります。 –