@KiselevPD

Как вырезать из файлов всё, кроме нужного тега?

Задача: Есть папки с файлами, по-сути файлы - это xml. Необходимо из ВСЕХ этих файлов в папках вырезать ВСЁ, кроме одного тега (*любое значение*).
Скажите, чем можно этот процесс автоматизировать? Уж очень много там файлов и вручную их лопатить - долго
  • Вопрос задан
  • 193 просмотра
Пригласить эксперта
Ответы на вопрос 3
fzfx
@fzfx
18,5 дм
перебрать файлы можно с помощью find, например. вырезать - grep, sed, awk.
я только не понял, что именно означает "вырезать". приведите пример, что есть и что хочется получить.
Ответ написан
dimonchik2013
@dimonchik2013
non progredi est regredi
рекомендую освоить
https://www.regular-expressions.info/powergrep.html

купить можно на рутракере
Ответ написан
@yaror
10 лет в мобильном телекоме
Я бы посоветовал глянуть в сторону xmllint.
Утилита юниксовая, но в Cygwin она есть:
https://stackoverflow.com/questions/21871237/use-x...

Примерный формат будет таким:
xmllint --xpath 'путь-к-xml-тегу' --output 'путь-к-файлу-для-сохранения-результата' путь-к-исходному-xml-файлу

Например, если надо выдрать все теги , где бы они не находились, будет примерно так:
xmllint --xpath '//TaxNo' --output 'file.stripped.xml' file.xml

Если надо выдирать не все попало теги TaxNo, а только вложенные в единственный тег Taxes, который, в свою очередь, вложен в корневой тег Root, то команда будет примерно такой:
xmllint --xpath '/Root/Taxes//TaxNo' --output 'file.stripped.xml' file.xml
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы