私は2つのXMLフラグメントを持つXMLを持っています.1つ目は、新しい値を適用する必要があるフラグメントです(かなり複雑な要素を持つことができます)
... some static parents
<a:element1>
<a:subelement tag="someString">
<a:s1>a</a:s1>
</a:subelement>
</a:element1>
<a:element2>b</a:element2>
<a:element3>c</a:element3>
... lots of other elements like the above ones
最初の XML から生成された XPath と新しい値を含む 2 番目のフラグメント。
<field>
<xpath>/Parent/element1/subelement[@tag="someString"]/s1</xpath>
<newValue>1</newValue>
</field>
<field>
<xpath>/Parent/element2</xpath>
<newValue>2</newValue>
</field>
最初のフラグメントのすべての要素に適用する新しい値がない場合があります。
XPath によって示される場所に新しい値を適用する必要がある XSLT 変換を作成するのに苦労しています。
出力は次のようになります。
... some static parents
<a:element1>
<a:subelement tag="someString">
<a:s1>1</a:s1>
</a:subelement>
</a:element1>
<a:element2>2</a:element2>
... lots of other elements like the above ones
動的 xpath を評価するために xalan:evaluate にアクセスできます。私はさまざまな解決策を試しています。それらが意味を成し始めたら、ここに書きます。
アプローチのアイデアは好評です。ありがとう