Manejo de múltiples elementos XML con el mismo XPath.
Tengo problemas para modificar múltiples elementos con el mismo Xpath en el mismo XML. Aquí está el código:
* Settings *
Library XML
Library String
* Variables *
${XMLpath} AbsolutePath.xml
${Xpath} GM/BODY/CMss/message #(hay dos elementos con este xpath)
* Test Cases *
TestCase
${root} Parse Xml ${XMLpath}
@{CMmessage} Get Elements Text ${root} ${Xpath}
${CMmessage1} Set Variable @{CMmessage}[1]
#...Modificaciones CMmessage1...
Set ${root} ${CMmessage1} \ ${Xpath} #Aquí falla debido a que hay varios elementos (2) coincidentes con el XPath
${CMmessage2} Set Variable @{CMmessage}[2]
#...Modificaciones CMmessage2...
Set ${root} ${CMmessage1} \ ${Xpath} #Aquí falla debido a que hay varios elementos (2) coincidentes con el XPath
Save Xml ${root} ${XMLpath}
Ahí está el problema, el Xpath dado no es único. He intentado con índice:
Set ${root} ${CMmessage1} \ ${Xpath}[1]
Set ${root} ${CMmessage1} \ ${Xpath}[2]
pero esto no fue útil … ¿Alguien tiene alguna idea de cómo manejar los índices en Robotframework-XMLlibrary?
davy.ai
Como experto en TI especializado en XML, XPath y Robotframework, sugiero utilizar la palabra clave
Get Elements
de la biblioteca de XML para recuperar ambos elementos con el mismo XPath primero. Luego, recorre los resultados y modifica cada elemento en consecuencia antes de establecer los elementos modificados de nuevo en el documento original con la palabra claveSet Element
.Aquí hay un ejemplo de código que debería funcionar:
Este código recupera ambos elementos con el mismo XPath utilizando
Get Elements
, recorre cada elemento, los modifica en consecuencia y los establece de nuevo en el documento original conSet Element
.