J'essaye de faire du XML simple avec Java et org.w3c.dom, mais je me suis coincé quand j'ai essayé d'ajouter un enfant à un enfant, quelque chose comme ça:J'ai des problèmes avec appendChild à un enfant
<root>
<child>
<childOfTheChild>Some text</childOfTheChild>
</child>
</root>
J'ai essayé pas mal de variations de ce (comme le premier enfant et l'annexant que la création childOfTheChild etc.):
Element root = doc.getDocumentElement();
Element child = doc.createElement("child");
Element childOfTheChild = doc.createElement("childOfTheChild ");
Text st = doc.createTextNode("Some text");
childOfTheChild.appendChild(st);
child.appendChild(childOfTheChild);
root.appendChild(child);
et je reçois toujours le même résultat, qui est:
<root>
<child>null</child>
</root>
Y a-t-il un problème dans ce code ou peut-être autre chose?
Edit:
fonction d'impression fonctionne bien avec certains tests XMLs autrement ... Ainsi, la fonction sans quelques corrections de beauté:
//Call System.out.println(print(dokument.getFirstChild()));
private String print(Node node) {
String txt = ""; //xml string presentation
//Get the primary node name and any existing attributes, like <myNode att1='some val'>
if (node.getNodeType() == node.ELEMENT_NODE)
{
//The name
txt += "<" + node.getNodeName();
//Insert the attributes
if (node.hasAttributes())
{
NamedNodeMap atts = node.getAttributes();
for (int i = 0; i < atts.getLength(); i++) {
Node atts = atts.item(i);
txt += " " + atts.getNodeName() + " = '" + atts.getNodeValue() + "'";
}
}
txt += ">\n";
}
int nChilds = -1;
//Get any existing child nodes, so the <root><child1></child1></root>
if (node.hasChildNodes())
{
NodeList childs = node.getChildNodes();
nChilds = childs.getLength();
if (nChilds == 1)
{
txt += childs.item(0).getNodeValue();
}
else
{
for (int j = 0; j < nChilds; j++) {
txt += print(childs.item(j));
}
}
}
//And the ending of the primary node, like </root>
if (node.getNodeType() == node.ELEMENT_NODE)
{
txt += "</" + node.getNodeName();
txt += ">\n";
}
return txt;
}
Comment imprimez-vous votre document sur la console? – toolkit
Alors, quel était le problème? :) – willcodejavaforfood
La fonction d'impression, commentez sous la réponse :). –