Je pense que vous ne devriez pas envisager de tout analyseur spécifique à la mise en œuvre. Java API for XML Processing permet d'utiliser tout conforme analyseur de la mise en œuvre d'une manière standard. Le code devrait être beaucoup plus portable, et quand on sait qu'un analyseur spécifique a grandi trop vieux, vous pouvez le remplacer par un autre sans changer une ligne de code (si vous le faites correctement).
Fondamentalement, il existe trois façons de traiter le XML dans un façon standard:
-
SAX C'est le plus simple API. Vous lire le fichier XML par la définition d'une classe de Gestionnaire qui reçoit les données à l'intérieur des éléments/attributs lorsque le fichier XML est traitée dans une série. Il est plus rapide et la plus simple si vous prévoyez de lire certains attributs/éléments et/ou écrire des valeurs de retour (votre cas).
-
DOM Cette méthode crée un objet de l'arbre qui vous permet de modifier/accès au hasard, de sorte qu'il est mieux pour XML complexes de manipulation et de manutention.
-
StAX C'est au milieu du chemin entre SAX et DOM. Il vous suffit d'écrire le code pour extraire les données de l'analyseur vous êtes intéressé au moment où elle est traitée.
Oubliez les propriétaires des Api comme JDOM ou Apache (c'est à dire à Apache Xerces XMLSerializer) parce qu'elle vous lier à une mise en œuvre spécifique qui peut évoluer dans le temps ou de perdre la compatibilité descendante, qui vous permettra de modifier votre code dans l'avenir, lorsque vous souhaitez mettre à niveau vers une nouvelle version de JDOM ou quel que soit l'analyseur vous utilisez. Si vous vous en tenez à Java API standard (à l'aide des usines et des interfaces), votre code sera beaucoup plus modulaire et facile à entretenir.
Il n'est pas besoin de dire que tous (je n'ai pas vérifié, mais je suis presque sûr) des analyseurs proposés sont conformes à un JAXP mise en œuvre donc, techniquement, vous pouvez utiliser tous, peu importe laquelle.