XML之DOM4、JDom等解析方式
来源:互联网 发布:java quartz 取消任务 编辑:程序博客网 时间:2024/06/04 19:41
1、生成XML
-----------------------------------------------------------------
下面是解析和修改XML
XML文件内容如下:
修改
解析
- public void createApplicationConfigXML(){
- //建立document对象
- try {
- Document document = DocumentHelper.createDocument();
- Element root = document.addElement("root");//添加文档根
- root.addComment("这个一个注释");//加入一行注释
- Element request = root.addElement("request"); //添加root的子节点
- request.addAttribute("type", "cat");
- request.addAttribute("flow", "tong");
- request.addAttribute("time", "2009");
- Element pro = request.addElement("pro");
- pro.addAttribute("type", "att");
- pro.addAttribute("name", "附件");
- pro.addText("测试哈子");
- Element cd = request.addElement("pro");
- cd.addAttribute("type", "cd");
- cd.addAttribute("name", "特殊字符过滤");
- cd.addCDATA("特殊字符");
- //输出全部原始数据,在编译器中显示
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("GBK");//根据需要设置编码
- XMLWriter writer = new XMLWriter(System.out, format);
- document.normalize();
- writer.write(document);
- writer.close();
- // 输出全部原始数据,并用它生成新的我们需要的XML文件
- XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
- "test.xml")), format);
- writer2.write(document); //输出到文件
- writer2.close();
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
public void createApplicationConfigXML(){ //建立document对象 try { Document document = DocumentHelper.createDocument(); Element root = document.addElement("root");//添加文档根 root.addComment("这个一个注释");//加入一行注释 Element request = root.addElement("request"); //添加root的子节点 request.addAttribute("type", "cat"); request.addAttribute("flow", "tong"); request.addAttribute("time", "2009"); Element pro = request.addElement("pro"); pro.addAttribute("type", "att"); pro.addAttribute("name", "附件"); pro.addText("测试哈子"); Element cd = request.addElement("pro"); cd.addAttribute("type", "cd"); cd.addAttribute("name", "特殊字符过滤"); cd.addCDATA("特殊字符"); //输出全部原始数据,在编译器中显示 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK");//根据需要设置编码 XMLWriter writer = new XMLWriter(System.out, format); document.normalize(); writer.write(document); writer.close(); // 输出全部原始数据,并用它生成新的我们需要的XML文件 XMLWriter writer2 = new XMLWriter(new FileWriter(new File( "test.xml")), format); writer2.write(document); //输出到文件 writer2.close();} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}
-----------------------------------------------------------------
下面是解析和修改XML
XML文件内容如下:
- <?xml version="1.0" encoding="utf-8"?>
- <root>
- <request type="Pending" flowType="GENERAL" flowName="报销流程"
- docId="185647" flowId="16409" nodeName="报销人确认" wikId="58288"
- sendId="1210040" userId="1210040" createDate="2009-12-03"
- title="费用报销 " flowCreaterId="1210040" nodeType="1"
- bosTime="2009-12-03 09:36:15">
- <pro type="att"></pro>
- <pro type="textarea" name="OP_bxryj" title="处理意见" need="true"></pro>
- </request>
- </root>
<?xml version="1.0" encoding="utf-8"?><root><request type="Pending" flowType="GENERAL" flowName="报销流程"docId="185647" flowId="16409" nodeName="报销人确认" wikId="58288"sendId="1210040" userId="1210040" createDate="2009-12-03"title="费用报销 " flowCreaterId="1210040" nodeType="1"bosTime="2009-12-03 09:36:15"><pro type="att"></pro><pro type="textarea" name="OP_bxryj" title="处理意见" need="true"></pro></request></root>
修改
- public String getApplcationConfigFromXMLTest(){
- String value = "";
- try {
- SAXReader sax = new SAXReader();
- Document xmlDoc = sax.read(new File(this.UBSSDIC_PATH));
- Element root = xmlDoc.getRootElement();//根节点
- Iterator it = root.elementIterator();
- while(it.hasNext()){
- Element ele = (Element)it.next();
- Attribute attribute = ele.attribute("type");
- if(attribute.getStringValue().equals("Pending")){
- attribute.setValue("sendread2");//修改属性节点的值
- }
- Attribute flowType = ele.attribute("flowType");
- flowType.detach();//删除某个属性
- ele.addAttribute("type", "Pending");//添加一个属性节点
- }
- Element new_cdata = root.addElement("new_cdata");//添加一个元素
- new_cdata.addCDATA("tst&ree");
- Element new_ele = root.addElement("new_ele");//添加一个元素
- new_ele.addText("33434343");
- Element obj = (Element)root.selectObject("//pro[@type='att']");//根据XPath查找元素
- obj.setText("测试dddddd");//修改元素的值 即text节点
- //输出全部原始数据,在编译器中显示
- OutputFormat format = OutputFormat.createPrettyPrint();
- format.setEncoding("GBK");
- XMLWriter writer = new XMLWriter(System.out, format);
- writer.write(xmlDoc);
- writer.close();
- // 输出全部原始数据,并用它生成新的我们需要的XML文件
- XMLWriter writer2 = new XMLWriter(new FileWriter(new File(
- "test.xml")), format);
- writer2.write(xmlDoc); //输出到文件
- writer2.close();
- } catch (DocumentException e) {
- System.out.println(e.getMessage());
- e.printStackTrace();
- }catch(IOException e){
- e.printStackTrace();
- }
- return value ;
- }
public String getApplcationConfigFromXMLTest(){String value = "";try {SAXReader sax = new SAXReader();Document xmlDoc = sax.read(new File(this.UBSSDIC_PATH));Element root = xmlDoc.getRootElement();//根节点Iterator it = root.elementIterator();while(it.hasNext()){Element ele = (Element)it.next();Attribute attribute = ele.attribute("type");if(attribute.getStringValue().equals("Pending")){attribute.setValue("sendread2");//修改属性节点的值}Attribute flowType = ele.attribute("flowType");flowType.detach();//删除某个属性ele.addAttribute("type", "Pending");//添加一个属性节点}Element new_cdata = root.addElement("new_cdata");//添加一个元素new_cdata.addCDATA("tst&ree");Element new_ele = root.addElement("new_ele");//添加一个元素new_ele.addText("33434343");Element obj = (Element)root.selectObject("//pro[@type='att']");//根据XPath查找元素obj.setText("测试dddddd");//修改元素的值 即text节点 //输出全部原始数据,在编译器中显示 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("GBK"); XMLWriter writer = new XMLWriter(System.out, format); writer.write(xmlDoc); writer.close(); // 输出全部原始数据,并用它生成新的我们需要的XML文件 XMLWriter writer2 = new XMLWriter(new FileWriter(new File( "test.xml")), format); writer2.write(xmlDoc); //输出到文件 writer2.close();} catch (DocumentException e) {System.out.println(e.getMessage());e.printStackTrace();}catch(IOException e){e.printStackTrace();}return value ;}
解析
- public void parseApplicationConfigXML(){
- try {
- SAXReader sax = new SAXReader();
- Document xmlDoc = sax.read(new File("E:\\20090316HPS\\Dom4jTest\\t.xml"));
- Element root = xmlDoc.getRootElement();//根节点
- Iterator it = root.elementIterator("request");
- while(it.hasNext()){
- Element request = (Element)it.next();
- System.out.println(request.getName());
- System.out.println(request.attributeValue("type"));
- System.out.println(request.attributeValue("flow"));
- System.out.println(request.attributeValue("time"));
- }
- System.out.println("-------------------------------------------");
- List list = root.selectNodes("//pro");
- for(int i = 0; i < list.size(); i++){
- Element pro = (Element)list.get(i);
- System.out.println(pro.getName());
- System.out.println(pro.attributeValue("type"));
- System.out.println(pro.attributeValue("name"));
- System.out.println(pro.getText());
- System.out.println("+++++++++++++++++++++++++++++++++");
- }
- } catch (DocumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
0 0
- XML之DOM4、JDom等解析方式
- Dom4解析xml
- 解析XML的方式之JDOM
- JAVA 解析XML之JDOM、DOM4J方式
- 对XML文件的解析,DOM、SAX、JDOM、JAXB还有dom4
- 解析xml之--JDOM
- XML解析之JDOM
- 解析XML之JDOM
- XML解析之jdom
- XML解析之jdom
- XML解析之JDOM
- XML解析之JDOM
- XML之JDOM解析
- 解析XML文档方式之三:jdom方式
- Jdom方式创建/解析xml
- Jdom方式j解析xml
- 使用JDOM方式解析XML
- XML解析之jdom解析
- ios中的多线程的用法总结
- Selenium之WebDriver
- git与svn
- SAP-ABAP-DOI技术的优化与说明
- []['constructor']['constructor']('alert(12345)')() js语句的解释
- XML之DOM4、JDom等解析方式
- android-statellite-menu
- 升级的aDdirect4.0版本已增加了CTR
- i2c用户模式设备驱动程序
- 配置需要MD5 authentication的NTP server
- 我的第一篇文章
- 循环队列问题
- GDI+学习及代码总结之-----画笔
- MongoDB命令行操作