La question est assez stupide, mais je suis complètement coincé. Je veux extraire les nœuds enfants d'un nœud en fonction d'une condition. Le XML est le suivant:
<a>
<aCode>aaa</aCode>
<aValue>bbb</aValue>
</a>
L'expression est évidente: //a[aCode='aaa']
Mais je ne sais pas comment je devrais le changer si c'est avec des espaces de noms et je dois utiliser local-name()
. J'ai testé les éléments suivants et cela donne une erreur d'analyse:
/*[local-name()='a'][[local-name()='aCode']='aaa']
Quelqu'un at-il une idée de ce que je dois faire?
Vous vouliez probablement dire
//*[local-name()='a'][*[local-name()='aCode']='aaa']
Essayez ceci
/a/aCode[text()='aaa']
ou
//*[local-name() = 'aCode' and text() = 'aaa']
Vous avez utilisé //
au mauvais endroit.
Celui-ci fonctionne:
//*[local-name()='a'][*[local-name()='acode' and text()='a2']]
et aussi celui-ci:
//*[local-name()='a'][aCode[text()='a2']]