Eu tenho um problema complicado. Eu preciso fazer uma pequena alteração em um grande número de arquivos xml (500+). A mudança envolve a mudança de um valor de "falso" para "verdadeiro". A linha que precisa mudar é assim:
<SizeIsMeasuredLineLine>false</SizeIsMeasuredLineLine>
E isso precisa se tornar:
<SizeIsMeasuredLineLine>true</SizeIsMeasuredLineLine>
Infelizmente, há inúmeras instâncias desse conjunto de tags em cada arquivo, portanto, não podemos encontrar e substituir simples. O que torna esse conjunto de tags único é que eles vêm algumas linhas depois:
<CID>ITEMNAME.BUS.ITEMNAME.DKV</CID>
No entanto, cada arquivo tem um nome de item diferente, então usei curingas para filtrá-los.
<CID>.*BUS..*.DKV</CID>
O problema é que o número de linhas entre a parte CID e a linha que precisa mudar não é consistente de arquivo para arquivo. Eu preciso encontrar uma maneira de separar as linhas entre as linhas curinga e substituir a linha Size.
Alguma ideia? Eu já tentei:
<CID>.*BUS..*.DKV</CID>.*?<SizeIsMeasuredLineLine>true</SizeIsMeasuredLineLine>
Mas, por algum motivo, isso não funcionou. Obrigado antecipadamente!
Editar em resposta ao comentário:
Basicamente, o que estou dizendo é que o código é assim:
<CID>ITEMNAME.BUS.ITEMNAME.DKV</CID>
<tag>Some Number of Other lines</tag>
<tag>Some Number of Other lines</tag>
<tag>Some Number of Other lines</tag>
<SizeIsMeasuredLineLine>false</SizeIsMeasuredLineLine>
E outras seções no código parecem:
<CID>ITEMNAME.COLR.ITEMNAME.FCLR</CID>
<tag>Some Number of Other lines</tag>
<tag>Some Number of Other lines</tag>
<tag>Some Number of Other lines</tag>
<SizeIsMeasuredLineLine>false</SizeIsMeasuredLineLine>
em outros lugares no código. Então, estou usando a linha CID .BUS .DKV como ponto de partida. Basicamente eu preciso mudar a primeira ocorrência da linha SizeisMeasured que vem diretamente após a linha CID .BUS .DKV. Mas há muitas outras linhas intermediárias (nenhuma das quais é consistente de arquivo para arquivo) com as quais eu não me importo e estão atrapalhando a minha pesquisa.