У мене складна проблема. Мені потрібно внести незначні зміни у велику кількість файлів XML (500+). Зміна включає перемикання значення з "false" на "true". Рядок, який потрібно змінити, виглядає так:
<SizeIsMeasuredLineLine>false</SizeIsMeasuredLineLine>
І вона повинна стати:
<SizeIsMeasuredLineLine>true</SizeIsMeasuredLineLine>
На жаль, у кожному файлі є безліч екземплярів цього набору тегів, тому ми не можемо зробити простий пошук і заміну. Те, що робить цей набір тегів унікальним, полягає в тому, що вони приходять за рядками після:
<CID>ITEMNAME.BUS.ITEMNAME.DKV</CID>
Однак кожен файл має інше ім'я елемента, тому я використав символи заміни для фільтрації.
<CID>.*BUS..*.DKV</CID>
Проблема полягає в тому, що кількість рядків між частиною CID і лінією, яку потрібно змінити, не узгоджується з файлом у файл. Мені потрібно знайти спосіб, за допомогою якого можна виділити рядки між ними, і замінити рядок Size.
Будь-які ідеї? Я вже намагався:
<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 .BUS .DKV як відправну точку. В основному мені потрібно змінити першу появу лінії SizeisMeasured, що надходить безпосередньо після лінії CID .BUS .DKV. Але є багато інших ліній між ними (жодна з яких не відповідає файлу файлу), що мене не хвилює, і вони зіпсують мій пошук.