Это вопрос о концепции .
У меня есть XML файл, назовем его base :
<base id="default">
<tags>
<tag>tag_one</tag>
<tag>tag_two</tag>
<tag>tag_three</tag>
</tags>
<data>
<data_a>blue</data_a>
<data_b>3</data_b>
</data>
</base>
Я хочу расширить этот XML в другом файле, изменяя отдельные свойства.Например, я хочу унаследовать этот файл и создать новый с другим data/data_a
узлом:
<base id="green" import="default">
<data>
<data_a>green</data_a>
</data>
</base>
Пока все довольно просто, он заменяет старый data/data_a
с новым.Я даже могу добавить новый узел:
<base id="ext" import="default">
<moredata>
<data>extended version</data>
</moredata>
</base>
И все же это довольно просто.Проблема возникает, когда я хочу удалить узел или иметь дело со списками XML (например, узел tags
).
Как мне ссылаться на определенный индекс в списке?Я думал сделать что-то вроде:
<base id="diffList" import="default">
<tags>
<tag index="1">this is not anymore tag_two</tag>
</tags>
</base>
И для удаления индекса узла / массива:
<base id="deleting" import="default">
<tags>
<tag index="2"/>
</tags>
<data/>
</base>
<!-- This will result in an XML containing these values: -->
<base>
<tag>tag_one</tag>
<tag>tag_two</tag>
</base>
Но я не доволен своими решениями.Я ничего не знаю о XSLT или других инструментах преобразования XML, но я думаю, что кто-то должен был сделать это раньше.
Цель key , которую я ищу, - это простота написания XMLвручную (как базовое, так и «расширенное» ).
Я открыт для новых решений, кроме XML, если их легко написать вручную.
Спасибодля чтения.