java删除xml文件节点??

现有文件<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!--editedwithXMLSpyv4.4U(htt... 现有文件
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by a (a) -->
<contacts>
<contact 编号="200720" 性别="男">
<姓名>张隆</姓名>
<QQ>356213186</QQ>
</contact>
<contact 编号="200719" 性别="男">
<姓名>于德洋</姓名>
<QQ>865212175</QQ>
</contact>
<contact 编号="200704" 性别="女">
<姓名>韩晓洁</姓名>
<QQ>526478190</QQ>
</contact>
<contact 编号="200703" 性别="女">
<姓名>龚晚晚</姓名>
<QQ>92144633</QQ>
</contact>
</contacts>

然后我想要通过java程序删除contact 节点中的<QQ>一栏,就好像在数据库中删除一个字段的意思,请问各位大侠??
要实现如上功能,怎样写语句呢???
呵呵!!以上问题小弟解决了..........
但是又碰到一个问题:
怎么一次性把所有节点都删掉呢??????
展开
 我来答
小傻

推荐于2018-05-01 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

java删除xml文件节点,主要方式是先解析整个xml文件,然后根据节点的编号,进行删除,代码如下:

package test; 
import java.io.IOException; 
import javax.xml.parsers.DocumentBuilder; 
import javax.xml.parsers.DocumentBuilderFactory; 
import javax.xml.parsers.ParserConfigurationException; 
import javax.xml.transform.Transformer; 
import javax.xml.transform.TransformerConfigurationException; 
import javax.xml.transform.TransformerException; 
import javax.xml.transform.TransformerFactory; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.NodeList; 
import org.w3c.dom.Text; 
import org.xml.sax.SAXException; 
public class XmlOprate { 
Document doc; 
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
DocumentBuilder builder; 
NodeList imags; 
String path; 
public NodeList getImags() { 
return imags; 

public void setImags(NodeList imags) { 
this.imags = imags; 

/** 
* 构造方法 
* @param path:xml文件的路径 
* @param nodes:要解析的xml节点名称 
*/ 
public XmlOprate(String path) { 
super(); 
this.path = path; 
System.out.println(System.getProperty("user.dir")); 

/** 
* 解析XML 
* @param path 
*/ 
public void readXml(){ 
try { 
builder = factory.newDocumentBuilder(); 
Document doc=builder.parse(path); 
doc.normalize(); 
NodeList imags =doc.getElementsByTagName("imags"); 
this.setImags(imags); 
for (int i=0;i<imags.getLength();i++){ 
Element link=(Element) imags.item(i); 
System.out.print("title: "); 
System.out.println(link.getElementsByTagName("title").item(0).getFirstChild().getNodeValue()); 
System.out.print("URL: "); 
System.out.println(link.getElementsByTagName("url").item(0).getFirstChild().getNodeValue()); 
System.out.print("imgsrc: "); 
System.out.println(link.getElementsByTagName("imgsrc").item(0).getFirstChild().getNodeValue()); 
System.out.println(); 

}catch (ParserConfigurationException e) { 
e.printStackTrace(); 
} catch (SAXException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 



/** 
* delete xml code //删除某个节点
* @param path 
*/ 
public void delXmlCode(){ 
try { 
builder = factory.newDocumentBuilder(); //拿到树节点
doc=builder.parse(path); 
doc.normalize(); 
NodeList imags =doc.getElementsByTagName("imags"); //拿到某个节点的ID,接着进行删除
Element elink=(Element) imags.item(0); 
elink.removeChild(elink.getElementsByTagName("imgsrc").item(0)); 
elink.removeChild(elink.getElementsByTagName("title").item(0)); 
elink.removeChild(elink.getElementsByTagName("url").item(0)); 
doc.getFirstChild().removeChild(elink); 
TransformerFactory tFactory =TransformerFactory.newInstance(); 
Transformer transformer = tFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 
StreamResult result = new StreamResult(new java.io.File(path)); 
transformer.transform(source, result); 
} catch (ParserConfigurationException e) { 
e.printStackTrace(); 
} catch (SAXException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} catch (TransformerConfigurationException e) { 
e.printStackTrace(); 
} catch (TransformerException e) { 
e.printStackTrace(); 


}
Allen_Rommel
2010-05-12 · TA获得超过2806个赞
知道小有建树答主
回答量:844
采纳率:0%
帮助的人:1603万
展开全部
把xml整个文件的根节点删掉就可以了:
<script type="text/javascript">
xmlDoc=loadXMLDoc("文件名.xml");

y=xmlDoc.documentElement;
xmlDoc.removeChild(y);
</script>

y得到是xml整个文件的根节点
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式