2010-05-23 3 views
-1

J'ai un document XML rempli de personnes (le parent est "étudiants", et il y a 25+ nœuds "étudiants").Génération XML avec Java, en essayant de copier le noeud entier

Chaque étudiant se présente comme suit:

<student> 
    <name></name> 
    <surname></surname> 
    <grades> 
    <subject name=""> 
     <small_grades></small_grades> 
     <final_grade></final_grade> 
    </subject> 
    <subject name=""> 
     <small_grades></small_grades> 
     <final_grade></final_grade> 
    </subject> 
    </grades> 
    <average></average> 
</student> 

Fondamentalement, ce que je veux faire ('ai été invité à le faire) est de faire un programme qui obtiendrait 3 étudiants la meilleure moyenne. Bien que l'analyse du document et l'obtention des trois meilleurs étudiants ne soit pas trop difficile, la génération XML est une douleur dans le cul.

En ce moment, ce que je fais est d'obtenir tous les nœuds de student et de le recréer dans un nouveau fichier. Est-il possible de copier l'intégralité du nœud student avec tout ce qu'il contient?

Cordialement, Paul

Répondre

2

Si vous utilisez org.w3c.dom, vous pouvez utiliser Document.importNode (Element, true) pour copier les sous-arbres.

à savoir element.appendChild(element.getOwnerDocument().importNode(student, true))

Idem pour dom4j, en fait (et c'est ce que vous devez utiliser en 2010).

+0

Eh bien, ça sonne bien, mais comment pourrais-je trouver le bon «étudiant» à importer (après que j'ai une liste de ces trois premiers) – PawelMysior

+0

Eh bien, pour (Elève élément: étudiants) root.appendChild (root.getOwnerDocument(). importNode (étudiant, vrai)); – alamar