Java XML-Datein Updaten

PumuckelKC

Ensign
Registriert
Mai 2007
Beiträge
144
Hiho

Ich habe das problem das ich unterschiedliche Konfigurations-XML-Datein Updaten möchte. Nun kann ich dieses aber nicht durch Stures Überschreiben machen, da dabei alle Einstellung in diesen Files verloren geht.
Gibt es eine möglichkeit XMLFiles so zu Updaten, dass Einstellungen (besondere Attribute der XMLTags bzw auch der text) erhalten bleiben und neue Elemente jedoch übernommen werden (so als angepasstes subversion merge)?

Vielen dank im Vorraus
 
Ich möchte bestehende Werte aus der alten Datei beibehalten und neue aus der neuen Datei übernehmen. Jedoch weis ich nicht welche Werte an der neuen Datei wirklich neu sind
 
Ich weiß ja nicht genau, von was du redest, aber ich schlag einfach mal JDOM vor. Das scheint da noch am Besten zu passen.
 
Sieht der Aufbau denn ähnlich aus?
Ein Beispiel wäre nicht schlecht. Wenn du zB. immer die selben Unterelemente hinzufügen willst ist DOM wahrscheinlich die beste Möglichkeit.
 
mmh ja die datein sehen grundlegend ähnlich aus, hier ma nen beispiel:
Alte XML Datei
Code:
<xml....>
<config>
    <general>
        <confSingleValue id="dateFormat">yyyyMMdd</confSingleValue>
        <confMultiValues id="disallowedConnectionTypes"> 
            <value>url</value>
            <value>mobile</value>
        </confMultiValues>
    </general>
    <fieldValidationConfig>
        <datafields default_max_length="20">
            <datafield id="MessageSubject" 	max_length="60" is_required="true"/>
            <datafield id="MessageSender" 	max_length="10"/>
            <datafield id="MessageText" 	max_length="300" is_required="true"/>
            <datafield id="MessageType" 	max_length="30" is_required="true"/>
            <datafield id="MessagePriority"	max_length="30" is_required="true"/>
        </datafields>
    </fieldValidationConfig>
</config>
Dann die neue
Code:
<xml....>
<config>
    <general>
        <confSingleValue id="dateFormat">ddMMyyyyy</confSingleValue>
        <confSingleValue id="defaultUser">Product</confSingleValue>
        <confMultiValues id="disallowedConnectionTypes"> 
            <value>url</value>
            <value>mobile</value>
            <value>skype</value>
        </confMultiValues>
       <confMultiValues id="allowedCustomerTypes"> 
            <value>registerd</value>
            <value>VIP</value>
        </confMultiValues>
    </general>
    <fieldValidationConfig>
        <datafields default_max_length="20">
            <datafield id="MessageSubject" 	max_length="50" is_required="true"/>
            <datafield id="MessageSender" 	max_length="15"/>
            <datafield id="MessageText" 	max_length="300" is_required="true"/>
            <datafield id="MessageType" 	max_length="30" is_required="true"/>
            <datafield id="MessagePriority"	max_length="30" is_required="true"/>
        </datafields>
    </fieldValidationConfig>
</config>
und die datei die entstehen sollte
Code:
<xml....>
<config>
    <general>
        <confSingleValue id="dateFormat">yyyyyMMdd</confSingleValue>
        <confSingleValue id="defaultUser">Product</confSingleValue>
        <confMultiValues id="disallowedConnectionTypes"> 
            <value>url</value>
            <value>mobile</value>
            <value>skype</value>
        </confMultiValues>
       <confMultiValues id="allowedCustomerTypes"> 
            <value>registerd</value>
            <value>VIP</value>
        </confMultiValues>
    </general>
    <fieldValidationConfig>
        <datafields default_max_length="20">
            <datafield id="MessageSubject" 	max_length="60" is_required="true"/>
            <datafield id="MessageSender" 	max_length="10"/>
            <datafield id="MessageText" 	max_length="300" is_required="true"/>
            <datafield id="MessageType" 	max_length="30" is_required="true"/>
	<datafield id="MessagePriority"	max_length="30" is_required="true"/>
        </datafields>
    </fieldValidationConfig>
</config>

So sollte es hinkommen. Es sollen halt die alten Werte Übernommen werden dabei aber auch neue hinzugefügt. Zu beachten ist jedoch auch das es für mehrere datein sein soll dessen aufbau ich nicht weis (also keine tagnames oder ids....)

Ich hoffe es ist nun klar was ich bräuchte (gerne auch als bibliothek)

Danke schon mal
 
Zurück
Oben