Dies ist eine Frage über Konzept.Erben von XML-Dateien und Ändern von Werten
Ich habe eine XML Datei, machen wir esBasis nennen:
<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>
Was ich tun möchte, ist in einer anderen Datei erweitern diese XML der Lage sein, individuelle Eigenschaften zu modifizieren . Zum Beispiel möchte ich die Datei erben und einen neuen mit einem anderen data/data_a
Knoten machen:
<base id="green" import="default">
<data>
<data_a>green</data_a>
</data>
</base>
Bisher ist es ziemlich einfach, ersetzt es die alten data/data_a
mit dem neuen. Ich kann sogar einen neuen Knoten hinzufügen:
<base id="ext" import="default">
<moredata>
<data>extended version</data>
</moredata>
</base>
Und immer noch ist es ziemlich einfach. Das Problem tritt auf, wenn ich einen Knoten löschen oder mit XML-Listen umgehen möchte (wie der Knoten tags
).
Wie soll ich einen bestimmten Index in einer Liste referenzieren? Ich dachte, etwas zu tun:
<base id="diffList" import="default">
<tags>
<tag index="1">this is not anymore tag_two</tag>
</tags>
</base>
Und zum Löschen eines Knotens/Array-Index:
<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>
Aber ich bin nicht zufrieden mit meiner Lösungen. Ich weiß nichts über XSLT oder andere XML-Transformationswerkzeuge, aber ich denke, dass jemand das schon einmal gemacht haben muss.
Das Schlüssel Ziel ich suche ist erleichtern die XML von Hand (beide die Basis und die „extended“) zu schreiben.
Ich bin offen für neue Lösungen neben XML, wenn sie einfach manuell zu schreiben sind.
Danke fürs Lesen.