Tengo un resultado XML bastante grande de una aplicación. Necesito procesarlo con mi programa y luego retroalimentarlo al programa original. Hay piezas en este XML que deben ser completadas y reemplazadas. La parte interesante se ve así:No se puede hacer que la expresión regular funcione correctamente con multiline
<sys:customtag sys:sid="1" sys:type="Processtart" />
<sys:tag>value</sys:tag>
here are some other tags
<sys:tag>value</sys.tag>
<sys:customtag sys:sid="1" sys:type="Procesend" />
y el documento contiene varias piezas como esta.
Necesito obtener todas las piezas XML dentro de estas etiquetas para poder hacer modificaciones en ella. Escribí una expresión regular para conseguir esas piezas, pero no funciona:
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"output.xml");
Regex regExp = new Regex(@"<sys:customtag(.*?)Processtart(.*?)/>(.*?)<sys:customtag (.*?)Procesend(.*?)/>", RegexOptions.Multiline & RegexOptions.IgnorePatternWhitespace & RegexOptions.CultureInvariant);
MatchCollection matches = regExp.Matches(xmlDoc.InnerXml);
si lo dejo toda la materia en una línea y llamar a esta expresión regular sin la opción de varias líneas, se la encuentra cada ocurrencias. Al dejar el archivo tal como está y establecer la opción de líneas múltiples, no funciona. ¿Cuál es el problema? ¿Qué debería cambiar? ¿O hay alguna manera más fácil de obtener las partes XML entre estas etiquetas sin regexp?
Eso es todo, gracias. También me refería a multiline = multi line mode. – Biri