У меня есть каверзная проблема. Мне нужно внести небольшие изменения в большое количество XML-файлов (более 500). Изменение включает в себя переключение значения с «ложь» на «истина».«Строка, которая должна измениться, выглядит следующим образом:
<SizeIsMeasuredLineLine>false</SizeIsMeasuredLineLine>
И это должно стать:
<SizeIsMeasuredLineLine>true</SizeIsMeasuredLineLine>
К сожалению, в каждом файле есть множество экземпляров этого набора тегов, поэтому мы не можем просто найти и заменить. То, что делает этот набор тегов уникальным, состоит в том, что они идут через несколько строк после:
<CID>ITEMNAME.BUS.ITEMNAME.DKV</CID>
Однако каждый файл имеет свое имя элемента, поэтому я использовал шаблоны для их фильтрации.
<CID>.*BUS..*.DKV</CID>
Проблема в том, что количество строк между частью CID и строкой, которую нужно изменить, не согласовано от файла к файлу. Мне нужно найти способ подстановки строк между ними и заменить строку размера.
Есть идеи? Я уже попробовал:
<CID>.*BUS..*.DKV</CID>.*?<SizeIsMeasuredLineLine>true</SizeIsMeasuredLineLine>
Но почему-то это не сработало. Заранее спасибо!
Изменить в ответ на комментарий:
По сути, я говорю, что код выглядит так:
<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>
И другие разделы в коде выглядят так:
<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>
в других местах в коде. Поэтому я использую CID.АВТОБУС.Линия ДКВ в качестве отправной точки. По сути, мне нужно изменить первое вхождение строки SizeisMeasured, которая приходит непосредственно ПОСЛЕ CID.АВТОБУС.Линия ДКВ. Но между ними есть много других строк (ни одна из которых не является последовательной от файла к файлу), которые меня не волнуют, и они запутывают мой поиск.