дружественный к XML инструмент для изменения XML - PullRequest
1 голос
/ 26 сентября 2019

У меня есть много .xml файлов в моем git-репо.Когда вы редактируете их вручную, я бы предпочел, чтобы изменения были дружественными.

Например:

до:

<Item         shape="circle" color='red' location="left">
    <stuff     /><!-- some comment-->
  <thing/>
</Item>

после:

<Item         shape="circle" color='red'>
    <stuff     /><!-- some comment-->
</Item>

diff: (жирная часть в оболочке отображается красным цветом)

$ git diff HEAD^..HEAD --color-words=.
diff --git a/x.xml b/x.xml
index 97855cd..baefd5f 100644
--- a/x.xml
+++ b/x.xml
@@ -1,4 +1,3 @@
<Item shape="circle" color='red'location="left">
<stuff /><!-- some comment-->
<thing/>^M
</Item>

Однако, когда есть много файлов для изменения, я хочу иметь некоторые инструменты (желательно в Python), чтобы сделать это автоматически.Например, используйте XPATH, чтобы удалить все атрибуты location тегов Item с атрибутом color='red', но при этом быть удобными для сравнения.

Если есть синтаксический анализатор XML, который может предоставить вам исходное местоположение каждогоэлемент в оригинальном потоке байтов, с небольшим программированием, я думаю, что это может быть сделано.Но я не нашел такого парсера.

У вас есть хорошие идеи?

...