Passage de JDOM à DOM (syntaxe)
Bonjour à tous,
Dans le cadre d'un projet, je dois enlever JDOM et remplacer le code l'utilisant en utilisant simplement DOM à la place. Or, à ce que j'ai vu la logique est un peu différente au niveau de la syntaxe (ex: on manipule une NodeList avec des Node qui peuvent être des éléments ou des attributs par exemple alors qu'en JDOM cela est simplifié et on manipule directement des Element et des Attribut).
En effet, j'ai remplacé ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11
| // Reading of the xml content
final SAXBuilder sxb = new SAXBuilder();
final Document document = sxb.build(xml);
final Element root = document.getRootElement();
// Retrieving the properties Element
final Element properties = (Element) root.getChildren().get(0);
// look into the properties elements to found the ident-module one and
// modifying it
final List<Element> propertiesElts = properties.getChildren(); |
Par ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| // Reading of the xml content
final DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
final DocumentBuilder db = dbf.newDocumentBuilder();
final org.w3c.dom.Document document = db.parse(xml);
// get the root
final org.w3c.dom.Element root = document.getDocumentElement();
// Retrieving the properties Element
final org.w3c.dom.Element properties = (org.w3c.dom.Element) root.getChildNodes().item(0);
// look into the properties elements to found the ident-module one and
// modifying it
final NodeList propertiesElts = properties.getChildNodes(); |
Je ne sais pas si ce code est correct car le Node retourné par "root.getChildNodes().item(0);" pourrait être un attribut aussi non? Cela vous semble t-il correct?
De plus, je ne sais pas comment remplacer le code JDOM suivant en DOM dans lequel on créé un élément puis des attributs qu'on lui ajoute avant d'ajouter cet élément en première position sous l'élément properties:
Code:
1 2 3 4 5 6 7 8
| final Element pwdEncoderNode =
new Element(PASSWORD_ENCODER_NODE, root.getNamespace());
final Attribute configurationAttr = new Attribute(CONF_ATTR, "");
final Attribute classpathAttr = new Attribute(ENC_ATTR_NAME, aEncoderClassPath);
pwdEncoderNode.setAttribute(configurationAttr);
pwdEncoderNode.setAttribute(classpathAttr);
// Add in first position to make the search faster after
properties.addContent(0, pwdEncoderNode); |
Pourriez-vous m'aider svp?