Je ne suis pas sûr que je suis ce que vous vouloir exactement dans le deuxième résultat, mais je vais prendre un coup de poignard à: le premier exemple ci-dessous produirait votre résultat # 1 (J'ai mis ton ou données iginal dans test.xml et pris en charge dans vos données réelles que « enfant » et « attr ») peuvent être répétés:
<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>
Il pourrait être modifié pour mettre une valeur différente, comme dans le résultat # 2, comme le ci-dessous:
<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>
Espérons que cela aide.
Je ne veux pas utiliser xslt –