2番目の結果であなたが望んでいることを正確に実行できるかどうかはわかりませんが、それを突き止めます。以下の最初の例では、結果#1が生成されます(元のデータをtest.xmlに入れました)実際のデータでは、「child」と「attr」が繰り返される可能性があると想定しています):
<root>{
for $child in doc('test.xml')/root/*
return
element {name($child)} {
for $attr at $index in $child/@*
return (
attribute {name($attr)} {$attr},
attribute {concat(name($attr), 2)} {$attr}
)
}
}</root>
次のように、結果#2のように、別の値を入力するように変更できます。
<root>{
for $child in doc('test.xml')/root/*
return
element {name($child)} {
for $attr at $index in $child/@*
return (
attribute {name($attr)} {$attr},
attribute {concat(name($attr), 2)} {
'**H**ello **W**orld'
}
)
}
}</root>
お役に立てば幸いです。