Leer y modificar elementos en un file XML - Visual Studio C#

El problema es el siguiente:

quiero leer y modificar elementos en un file XML

Quiero conseguir el valor del elemento input, que se encuentra en el segundo elemento TRANSLATE
En RPA developer he hecho una prueba siguiendo la documentación y funciona, pero haciendo lo mismo en C#, siguiendo, la documentación disponible, no funciona

1.- ejemplo encontrado en la solution de ejemplos “03 - Abort window and XML”

2.- otro ejemplo encontrado en la solution de ejemplos “03 - Abort window and XML”

Los elementos “source” y “destination” del file xml sì logro visualizarlos con los dos métodos mencionados.

Gracias de antemano por la ayuda

Si puedes leer el XML con Cartes Script, entonces no es necesario que nos proporciones el código Cartes Script. No tienes problemas con él.

Si no puedes leer el XML con C#, entonces es necesario que nos proporciones el código C#. Tienes problemas con él. De todas formas, te señalo que RPA Suite no proporciona información para leer XML en C#. C# ya lee XML de manera nativa y no necesita Cartes Script.

Un saludo

El código es el siguiente

string workingPath=Environment.CurrentDirectory
XMLFile inFileXml= new XMLFile();
inFileXml.LoadFromFile(workingPath + "\\toTranslate\\inputWordList.xml");
Console.WriteLine("ELEMENTO XML input: "+inFileXml.getKey("source").listAsString[0]);
string temp_elXml = inFileXml.getKey("TRANSLATE[1]\\input").listAsString[0];

el contenido del file XML:

<record>
<source>spanish</source>
<destination>italian</destination>
<TRANSLATE>
<input>silla</input>
<output></output>
</TRANSLATE>
<TRANSLATE>
<input>mesa</input>
<output></output>
</TRANSLATE>
</record>

En los ejemplos de RPA Developer con C# hay uno (03 - Abort window and XML) en el cual se comparaba el usar el metodo nativo de C# y el cartes script, así que pensaba que era una alternativa más simple a la original

@Luis, lo que muestras es un ejemplo de escritura, no de lectura. Es la lectura donde tienes el problema. Por otro lado, sí, tienes razón, creemos que es más sencillo usar instancias del objeto de Cartes XMLFile.

Tus llamadas, no lo he probado, no me parecen correctas. Prueba esto.

string temp_elXml = inFileXml.getKey(“TRANSLATE”).ListAsRecord[0].AsString[“input”];

Se trata de un registro de dos campos, no de un valor string.

1 Like

era @ rodrigo_lopez yo no realize la pregunta

He probado el código y ahora me funciona, gracias! :+1: