Мне нужно решить вопрос, который заставлял меня целый день пытаться его решить.
У меня есть следующий XML-файл:
<p> </p>
<p> </p>
<p class="subtit">Transporte:</p>
<p>Para transporte desde y hacia el Aeropuerto Internacional Arturo Merino Benítez (fono 56-2-690 19 00) existen diversas empresas que prestan este servicio: buses, minibuses y taxis. Se recomienda contratar transporte autorizado dentro del aeropuerto.</p>
<TXT_accesp>
<p>Climate:</p>
<p>Santiago has a temperate Mediterranean climate with an annual average temperature of 14.5º Celsius. September is the start of spring, the climate is gentle and fresh with highs reaching 28 degrees during the day that drop to 6º C (43º F) to 12º C (54º F) at night.</p>
<p> </p>
<p>Language:</p>
<p>Spanish</p>
<p> </p>
</TXT_accesp>
<p> </p>
<p> </p>
<p class="subtit">Transporte:</p>
<p>Para transporte desde y hacia el Aeropuerto Internacional Arturo Merino Benítez (fono 56-2-690 19 00) existen diversas empresas que prestan este servicio: buses, minibuses y taxis. Se recomienda contratar transporte autorizado dentro del aeropuerto.</p>
Затем я удаляю все теги <p> </ p>
, не удаляя текст внутри, но только те <p> </ p>
найденные внутри тега <TXT_accesp> and </ TXT_accesp>
Я делаю это с помощью bash, поскольку многие файлы будут там, где мне нужно заменить эти теги. Пока что я сделал следующее:
sed -e 's/<TXT_accesp><p>\(.*\)<\/p><\/TXT_accesp>$/\1/g' example.xml
Идея состоит в том, чтобы удалить весь текст <p> </ p>
или независимый текст, если они не находятся внутри, но если текст не удален. После этого идея заключается в том, чтобы сохранить изменения.
Вы можете мне помочь?
Жажда не в том, указана ли команда или я комбинирую ее с другой. Кроме того, регулярные выражения не знают, правильно ли это.
Большое спасибо всем!