我不确定我是否在第二个结果中完全遵循了您想要的内容,但我会尝试一下:下面的第一个示例将产生您的结果 #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>
希望有帮助。