非常に複雑な XQuery を作成する必要があります (少なくとも私の基準では)。
ここに私の入力xmlがあります:
<testRequest>
<request1>
<Line>1</Line>
<action>addtoName</action>
</request1>
<request2>
<Line>2</Line>
<action>addtoSpace</action>
</request2>
<request3>
<Line>3<Line>
<action>addtospace</action>
</request3>
</testRequest>
私の出力 xml では、アクションは "request1" 要素に属性として添付する必要があります。したがって、request1 要素の下の action 要素に基づいて、request1 要素の属性は次のいずれかになります。
if action = IgnoreCase(addtoName), the request1 element should be <request1 action=insertingname>
if action = IgnoreCase(addtoSpace), the request1 element should be <request1 action=updatingspace>
これだけでなく、その下にあるアクション値に基づいて、要素に属性を追加する必要もあります。したがって、要素の下の各要素をトラバースし、要素のいずれかが「addtospace」と等しいかどうかを確認する必要があります。そうであれば、要素の対応する値を取得し、要素の属性を構成する必要があります。上記の xml から、要素の属性は次のようになります。
<testRequest lineFiller="Line Like 2_* AND Line Like 3_*>, where 2 and 3 are the respective line numbers.
element= addtoSpace を持つ要素がない場合は、要素の属性を「変更」する必要があります。
したがって、要約すると、変換された xml は次のようになります。
<testRequest lineFiller="Line Like 2_* AND Line Like 3_*>
<request1 action=insertingname>
<Line>1</Line>
<action>addtoName</action>
</request1>
<request2 action=updatingspace>
<Line>2</Line>
<action>addtoSpace</action>
</request2>
<request3 action=updatingspace>
<Line>3<Line>
<action>addtospace</action>
</request3>
</testRequest>
この膨大なタスクを達成するための助けをいただければ幸いです。
ありがとう!!!