Итак, у меня есть несколько файлов XML, в которых есть лица с уникальными идентификаторами, и у каждого из них есть любимая еда (человек может быть в нескольких файлах xml):
Бывают случаи, когда человек с id = 300 может содержать food прямо в начале тега.
<person id="299">
<food>
<type> Hot Dog </type>
</food>
</person>
<person id="300">
<food>
<type> Burger</type>
</food>
</person>
Или могут быть другие теги перед тегом food
<person id="300">
<year>
<birth> 1990 </birth>
<marriage> 2020 </marriage>
</year>
<food>
<type> Vegan </type>
</food>
</person>
Мне нужно использовать один Perl RegEx удаляет метки еды ТОЛЬКО тех людей, чей ID равен 300, независимо от того, находится ли он в начале, середине или конце тега человека
Я знаю, было ли это для тега целого человека Я мог бы использовать что-то вроде:
$fileContents =~ s/<person id=\"300\"[^<]+<\/person>//g;
Но я должен оставить тег человека нетронутым, я должен удалить только тег еды внутри тега человека, но я не могу удалить все теги еды, потому что мне нужно оставьте это людям с другими ID.
Не могли бы вы мне помочь ?? Я много боролся с этим D: