Ich verwende Python zu Batch-Bearbeitung viele MusicXML-Dateien, die zur Zeit wie folgt aussehen:Wie füge ich ein neues Element zu einem musicXML-Baum in Python (elementtree) hinzu?
<score-partwise>
...
<attributes>
<transpose>
<diatonic>-5</diatonic>
<chromatic>-9</chromatic>
</transpose>
</attributes>
...
</score-partwise>
Wie kann ich <octave-change>-1</octave-change>
in <transpose></transpose>
, wie unten hinzufügen?
import xml.etree.ElementTree as ET
attributes = ET.Element("attributes")
attributes.append(ET.fromstring('<transpose><octave-change>-1</octave-change></transpose>'))
ohne Erfolg:
<score-partwise>
...
<attributes>
<transpose>
<diatonic>-5</diatonic>
<chromatic>-9</chromatic>
<octave-change>-1</octave-change>
</transpose>
</attributes>
...
</score-partwise>
Ich habe dies versucht.
Jede Hilfe wird sehr geschätzt. Vielen Dank.
Es wäre hilfreich, um zu sehen, was Ausgabe von laufenden Code erzeugt wird, was zu erwarten war, und vielleicht ein kleines Beispiel so können andere Reproduzieren Sie Ihr Problem. – theWanderer4865
@ theWanderer4865 Sobald ich den vollen Code funktioniere, werde ich die Frage mit dem vollen Code aktualisieren. Das Ziel des Programms ist es, bestimmte Felder von Metadaten in hunderten von musicXML-Dateien gleichzeitig zu ändern. Wenn also 100 Dateien in einem Verzeichnis für die "Flöte" stehen, kann der Benutzer dieses Programm verwenden, um die relevanten XML-Metadaten für das gewünschte Zielinstrument, z. B. "Oboe", zu ändern. Letztendlich schreibt das Programm neue Dateien. Der obige Code ist nur ein Teil des vollständigen Programms. –