11
votes

xml.etree.ElementTree équivalent en Java

Je fais un peu de simple transformation XML en Python et a grandi pour aimer le Elementtree façon de faire des choses.

Y a-t-il quelque chose de similaire et aussi facile à utiliser en Java? Je trouve le modèle Dom un peu encombrant et je me trouve écrire beaucoup plus de code que je voudrais faire des choses simples. P>

ou suis-je demandant la mauvaise chose? P>

Peut-être que ma question est peut-être ma question : Existe-t-il une meilleure option que les classes "xmlutils" que je vois des personnes implémentant dans certains endroits pour simplifier leur code lorsqu'ils traitent avec DOM? P>


Ajout d'une litte ici sur pourquoi j'aime l'élévation question a été posée. p>

  • SIMPLICITY (je suppose que tout semble simple après avoir travaillé avec DOM, mais) LI>
  • se sent comme un ajustement naturel en python li>
  • nécessite très peu de code sur ma part. Li> Ul>

    Je suis en train de trouver un exemple simple de code pour illustrer, mais il est un peu difficile de donner un bon exemple. Voici une tentative cependant. Cela ajoute simplement une balise avec une valeur et un attribut à une chaîne XML existante. P> xxx pré>

    après cela, le nouveau_xml_string est P>

    <top><sub a="x" /><tag a="x">value</tag></top>
    


1 commentaires

Merci pour le conseil les gars. Je vais commencer par regarder à venir et voir si c'est juste pour moi.


4 Réponses :


1
votes

Vous pouvez regarder dans les alternatives suivantes:

DOM4J

xom

JDOM

Puisque je n'ai jamais utilisé Elementtree, je ne sais pas ce que l'un est le plus proche. Si vous pouvez utiliser Groovy dans votre projet, il offre un ensemble de classes qui aident beaucoup lors du traitement XML.


0 commentaires

1
votes

Nous trouvons XOM ( http://www.xom.nu ) pour fournir une fonctionnalité d'élément sous-classable simple.


0 commentaires

6
votes

Pour être honnête, toutes les API XML à Java Suck, vous pouvez également varier le niveau de sucer que vous poussez dans lequel vous poussez-vous dans lesquels peut être horrible / lent à gérer / décent à même de manière supracente.

Tout cela découle principalement du fait que Java Apis essaie d'être comme W3C DOM conformément à possible, en fait XERCES ( la solution XML actuelle actuelle de Java ) Fiche elle-même d'être conforme à tout un tas de spécifications W3C liées XML, comme vous pouvez le constater à partir de leur page d'accueil.

L'API actuel de Xerces est très désagréable de travailler avec, cependant, et à cause de cette multiplication d'autres bibliothèques Java XML surgiées au fil des ans. Les plus populaires sont actuellement

  • JDOM , simplifie beaucoup les opérations de DOM et est-ce que j'ose dire même agréable, fonctionne comme Un charme lorsqu'il est mélangé avec Jaxen - Eh bien, à moins que vous ne frappiez Ce problème avec les espaces de noms .
  • XOM qui a une présentation merveilleuse sur ce qui ne va pas avec Java's XML en ce moment et comment ils proposent leur façon de faire les choses comme une solution. En partie, il est en fait meilleur que JDOM, mais il n'est pas assez répandu, alors je ne peux pas vraiment dire comment il se comporte dans le monde réel. Vaut certainement une vérification.
  • DOM4J , bibliothèque bien arrondie, prend en charge toutes sortes de fonctionnalités importantes et joue comme une Solution Terre pour XML. DOM4J est essentiellement l'option "Vieille, prouvée et fiable" des populaires.

    Dernier mais définitivement non moins, je dois juste mentionner Stax juste parce que c'est différent, c'est en fait API en streaming axée sur les événements pour XML. Vaut certainement un coup d'oeil juste hors de curiosité.

    ps. Je suis actuellement en train d'écrire mon propre analyseur XML / navigateur en tant qu'exercice mais je n'ai pas décidé de quel type d'API aurai. Je vis vraiment pour la facilité d'utilisation qui semble être assez rare dans les API de Java XML jusqu'à présent, mais je ne suis pas tout à fait sûr de quel type d'API que je vais fournir. L'élévatrice de Python semble intéressant, mais comme je ne l'ai pas entièrement familier, voudriez-vous peut-être donner un bref résumé sur ce que vous trouverez exactement?


3 commentaires

Édité la question puisqu'elle je suis sûr que je n'aurais pas pu l'avoir installé ici ici.


Merci d'avoir ajouté l'exemple, je promets de le prendre en compte lors de la fabrication de mon API XML. Je vais commenter votre question quand j'en ai fini (dans un mois ou plus, je ne passe que les week-ends codant mes propres affaires) afin que vous puissiez le tester.


L'API de Java pour XML est vraiment suce. À l'exception de Jaxb, c'est incroyable à quel point ils sont graves.



0
votes

Il est vrai que les API XML Java ne sont pas les plus en termes de facilité d'utilisation. Mes options seraient XOM , JDOM puis construit dans JAXP dans cet ordre . Il y avait des grondements sur XML natif dans la langue ( Begin Tab produit Sub Links L'intégration de XML dans Java Programmation de Language) comme un nouveau type de données, mais qui semble avoir au point mort.


0 commentaires