2016-03-21 4 views
-1

У меня есть огромный xml, который мне придется обрабатывать каждый день в улье с помощью xpath. Поскольку xpath не работает с комментариями и пространствами имен, я ищу скрипт bash/python для его удаления.Форматирование XML

Количество тегов и количество строк комментариев не будут постоянными каждый день, , поэтому я не могу использовать постоянную идентификацию xslt для этого. Также опись нет, так что это не вариант для меня.

Любое руководство по разбору этого с помощью bash или python было бы полезно.

Образец XML

<?xml version="1.0" encoding="utf-8"?> 

<tag1 xmlns:xsi="--dummy--" xmlns="--dummy---"> 

<tag2> 

<!-- Default Codec Profile --> 

    <configitem name="att1" type="string">attval</configitem> 
</tag2> 

+2

Но XPATH хорошо работает с комментариями и пространствами имен. Зачем их удалять? Вы рассмотрели XSLT, чтобы разбить их, но тогда XSLT основан на XPATH, так что вы действительно не исправили проблему. – tdelaney

+0

Функции xpath в кусте не извлекают значения тегов, когда существуют пространства имен и комментарии. Может быть, это еще не добавлено. – sushma

ответ

1

Я рекомендую использовать xmlstarlet «s функцию форматирования. Огромное количество XML может быть переформатировано или довольно быстро напечатано с помощью вызова xml fo.

+0

Спасибо, это сработало для меня, чтобы удалить комментарии отлично. Работа с ним для удаления информации о версии и пространстве имен. – sushma

Смежные вопросы