java如何解析由用友的订单生成的xml文件,并将节点属性的值获取封装成对象

附图:因为生成xml文件的表单有主表和子表组成,主表的元素要放在一个对象中,子表的元素也要放在对象中,并且子表的记录数为2个,所以需要两个记录数据来存放不同对象中。主表和... 附图:

因为生成xml文件的表单有主表和子表组成,主表的元素要放在一个对象中,子表的元素也要放在对象中,并且子表的记录数为2个,所以需要两个记录数据来存放不同对象中。主表和子表是一对多的关系。怎样实现 求大神指导 谢谢了。 加急中!!!!!!!!!!!
展开
 我来答
匿名用户
推荐于2016-07-10
展开全部
import java.io.File;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
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;


public class ParseXML {



public static void main(String[] args) throws Exception{
// step 1: 获得dom解析器工厂(工作的作用是用于创建具体的解析器)
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

// step 2:获得具体的dom解析器
    DocumentBuilder db = dbf.newDocumentBuilder();
    
    // step3: 解析一个xml文档,获得Document对象(根结点)
    Document document = db.parse(new File("src/MyXml.xml"));
    
    NodeList list = document.getElementsByTagName("VALUE");
    
    for(int i = 0; i < list.getLength(); i++){
     Element node = (Element)list.item(i);
     Element e = (Element)(node.getElementsByTagName("NO").item(0));
     System.out.println(e.getAttribute("data"));
    
     e.setAttribute("data", "99");
    
     System.out.print("车牌号码:" + node.getElementsByTagName("NO").item(0).getFirstChild().getNodeValue()); 
     System.out.println("车主地址:" + node.getElementsByTagName("ADDR").item(0).getFirstChild().getNodeValue()); 
    
     //下面代码修改后保存xml
     TransformerFactory factory = TransformerFactory.newInstance();
     Transformer former = factory.newTransformer();
     former.transform(new DOMSource(document), new StreamResult(new File("src/MyXml.xml")));
    }
    

}

}

/*
 <?xml version="1.0" encoding="GB2312"?> 
<RESULT> 
<VALUE> 
   <NO data="23">A1234</NO> 
   <ADDR>四川省XX县XX镇XX路X段XX号</ADDR> 
</VALUE> 
<VALUE> 
   <NO  data="24">B1234</NO> 
   <ADDR>四川省XX市XX乡XX村XX组</ADDR> 
</VALUE> 
</RESULT>
*/


你照着这个试试

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式