Sí, sí, ya lo sé, es que copié mal el código, lo he probado de todas formas imaginables (excepto la buena, ¡je,je!).
La solución que muestras cambia las etiquetas independientemente de su longitud, aunque le ponga longitud 200 y el campo solo tenga 15 caracteres. Lo único que hace es empezar a buscar a partir del carácter 200 o el que le pongas en
.{200,}?Voy a intentar ser más preciso en mi ejemplo.
Si ejecuto:
Using perl Syntax Highlighting
s{<(tns:Motivos)> .{200,}? </tns:Motivos>}{<$1>texto demasiado largo</$1>}gsix;
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Me cambia:
Using xml Syntax Highlighting
<tns:Motivos>DEFECTOS O MOTIVOS<span style="font-weight: bold"></tns:Motivos></span>
<tns:Motivos>01) La marca solicitada se halla incursa en la prohibición del artº xxxxx) de la Ley de Marcas (xxxxxxx, de 7 de diciembre) al poder inducir al público a error sobre la naturaleza de los servicios para los que se solicita la marca, toda vez que el distintivo contiene el término "xxxxxxx" que no se corresponde con todo lo solicitado. Se podrá subsanar el defecto señalado, limitando los servicios a: "xxxxxx xx xxxxxx", aportando nueva lista de productos/servicios (en formulario oficial), o bien no limitar los servicios, y eliminar del distintivo el término "xxxxxxx", remitiendo xxxxxx la página nº 2 de la solicitud (apartado xxx), toda vez que dicha modificacion se considera que no altera xxxxxxxx la marca, conforme establece el Art. xxxx de la Ley de Marcas xxxxxx.</tns:Motivos></tns:SuspensoFondoLey17Marca>
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
por esto:
Using xml Syntax Highlighting
<tns:Motivos>texto demasiado largo</tns:Motivos></tns:SuspensoFondoLey17Marca>
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
En el XML original hay 181 marcas o
tags <tns:Motivos> mientras que en el texto convertido hay 98 (casi la mitad).
En el texto convertido también hay 98
<tns:Motivos>texto demasiado largo</tns:Motivos>; eso significa que los ha convertido todos sin excepción.
NOTA: He dejado el tag
</tns:SuspensoFondoLey17Marca> para que sea fácil identificar qué ha cambiado.
El problema parece ser que casi siempre los
<tns:Motivos> van precedidos por una
<tns:Motivos> que es como un título pequeño. Parece que busca a partir del carácter 200; así pues, salta al siguiente
<tns:Motivos> y lo cambia por todo, eliminando un
tag completo del XML.
Ese es mi problema, disculpa sino lo aclaré bien.