一个再xml文档中加入新节点的问题

browseli 2003-10-17 09:35:00
代码如下:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse("c:/study.xml");
Element root = doc.getDocumentElement();
Element nodeNouveauUser = doc.createElement("user") ;
Element nodeLogin = doc.createElement("login");
nodeLogin.setNodeValue("sa");
nodeLogin.normalize();
root.appendChild(nodeNouveauUser);
nodeNouveauUser.appendChild(nodeLogin);
nodeNouveauUser.normalize();
root.normalize();
程序运行完毕后,没有报错,但xml文档没有变化
...全文
27 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmliming2002 2003-10-23
  • 打赏
  • 举报
回复
给你个例子(x-udom):

package com.howfine.jhoa.tools;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;

import java.lang.Double;

/**
* @author lim
*
* To change this generated comment edit the template variable "typecomment":
* Window>Preferences>Java>Templates.
* To enable and disable the creation of type comments go to
* Window>Preferences>Java>Code Generation.
*/
public class ProcessOrder {

//空构造
public ProcessOrder()
{}

private void Orders(Document doc, Document newDoc)
{
Element newRoot = newDoc.createElement("processOrders");
NodeList orders = doc.getElementsByTagName("orders");
for(int i=0;i<orders.getLength();i++)
{
Element thisOrders = (Element)orders.item(i);
NodeList processedOrders = thisOrders.getElementsByTagName("order");
for(int orderNum=0;orderNum<processedOrders.getLength();orderNum++)
{
Element thisOrder = (Element)processedOrders.item(orderNum);
Element customerid = (Element)thisOrder.getElementsByTagName("customerid").item(0);
String limit = customerid.getAttributeNode("limit").getNodeValue();
String total = thisOrder.getElementsByTagName("total").item(0).getFirstChild().getNodeValue();

double limitDbl = new Double(limit).doubleValue();
double totalDbl = new Double(total).doubleValue();

Element newOrder = newDoc.createElement("order");
Element newStatus = newDoc.createElement("status");
if(totalDbl > limitDbl)
{
newStatus.appendChild(newDoc.createTextNode("REJECTED"));
}
else
{
newStatus.appendChild(newDoc.createTextNode("PROCESSED"));
}
Element newCustomer = newDoc.createElement("customerid");
String oldCustomer = customerid.getFirstChild().getNodeValue();
newCustomer.appendChild(newDoc.createTextNode(oldCustomer));
Element newTotal = newDoc.createElement("total");
newTotal.appendChild(newDoc.createTextNode(total));

newOrder.appendChild(newStatus);
newOrder.appendChild(newCustomer);
newOrder.appendChild(newTotal);

newRoot.appendChild(newOrder);

newDoc.appendChild(newRoot);

}
}

System.out.println("***************Normalized************");
newRoot.normalize();

System.out.print(newRoot.toString());

}

public static void main (String args[]) {

File docFile = new File("orders.xml");
Document Wdoc = null;
Document WnewDoc = null;

try{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Wdoc = db.parse(docFile);
WnewDoc = db.newDocument();
}
catch(Exception ex){
System.out.println("Problem parsing the file." + ex.getMessage().toString());

}
ProcessOrder po = new ProcessOrder();
po.Orders(Wdoc,WnewDoc);
}

}
klbt 2003-10-17
  • 打赏
  • 举报
回复
关注,帮你顶。
browseli 2003-10-17
  • 打赏
  • 举报
回复
我不知道怎样保存xml文档请指教

2,633

社区成员

发帖
与我相关
我的任务
社区描述
WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
社区管理员
  • WebSphere社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧