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:
Par ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
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?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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();
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:
Pourriez-vous m'aider svp?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Partager