900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > java dom添加节点_java用dom更新xml的有关问题 如何在子节点上添加节点

java dom添加节点_java用dom更新xml的有关问题 如何在子节点上添加节点

时间:2020-01-14 11:53:34

相关推荐

java dom添加节点_java用dom更新xml的有关问题 如何在子节点上添加节点

java用dom更新xml的问题,怎么在子节点下添加节点?

有原始xml如下:

我想要得到修改后的结果为:

我的代码为:

publicstaticvoidmain(String[]args){

DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();

try{

DocumentBuilderdb=dbf.newDocumentBuilder();

Documentdoc=db.parse("D:/students.xml");

ElementeltName=doc.createElement("name");

Attrattr=doc.createAttribute("sn");

attr.setValue("04");

Attrattr2=doc.createAttribute("sn2");

attr2.setValue("0422");

eltName.setAttributeNode(attr);

eltName.setAttributeNode(attr2);

ElementeltRoot=doc.getDocumentElement();

eltRoot.appendChild(eltName);

doc2XmlFile(doc,"D:/students.xml");

}catch(ParserConfigurationExceptione){

e.printStackTrace();

}catch(SAXExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}

}

/**

*将Document对象修改后写入到xml里面

*@paramdocumentDocument对象

*@paramfilenamexml文件路径

*@return

*/

publicbooleandoc2XmlFile(Documentdocument,Stringfilename){

booleanflag=true;

try{

/**将document中的内容写入文件中*/

TransformerFactorytFactory=TransformerFactory.newInstance();

Transformertransformer=tFactory.newTransformer();

/**编码*/

transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8");

DOMSourcesource=newDOMSource(document);

StreamResultresult=newStreamResult(newFile(filename));

transformer.transform(source,result);

}catch(Exceptionex){

flag=false;

System.out.println("更新"+filename+"出错:"+ex);

log.error("更新"+filename+"出错:"+ex);

ex.printStackTrace();

}

returnflag;

}

这样得到的结果为:

弄了一天了也没能把添加的name节点放到student节点下面,请教各位大侠了!

------最佳解决方案--------------------------------------------------------

你组织文档时候写的代码是这样的:

ElementeltRoot=doc.getDocumentElement();//获取根节点

eltRoot.appendChild(eltName);//将新的节点拼接到根节点

所以你得到的结果必然是这样:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。