JDOM升级版练习

来源:互联网 发布:js单选按钮取消选中 编辑:程序博客网 时间:2024/05/19 12:18
(手动建立xml文件即可)创建名字为“phones.xml”xml文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<phones>
 <sony>
  <z3 price="3000">
   2013年发布的索尼手机,防水
  </z3>
  <z4 price="4000">
   2014年发布的索尼手机,防水,高性能
  </z4>
  <z5 price="5000">
   2015年发布的索尼手机,防水,支持4k显示
  </z5>
 </sony>
 <apple>
  <ip5s price="3000">
   2013年发布的苹果手机,首款64位cpu,支持指纹的手机
  </ip5s>
  <ip6 price="4000">
   2014年发布的苹果手机,更大屏幕,240帧慢动作
  </ip6>
  <ip6s price="5000">
   2015年发布的苹果手机,强大的a9处理器,1200w摄像头,4k录制
  </ip6s>
 </apple>
</phones>


1)利用jdom解析上面xml文件,要求把价格大于3500的苹果手机,
价格小于4500索尼手机的【型号名及简介】以键值对存储到map中,并打印map内容到控制台。


2)利用jdom修改上面xml文件内容,并存储新文件“new_phones.xml”
    a)把ip5s手机价格减少500元

    b)把ip6s手机的简介后追加",支持3d touch"



package xml;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStreamReader;import java.util.HashMap;import java.util.List;import java.util.Map;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.input.SAXBuilder;import org.jdom2.output.Format;import org.jdom2.output.XMLOutputter;public class Test1 {public static void main(String[] args) throws Exception {demo2();}private static void demo2() throws Exception{SAXBuilder sb=new SAXBuilder();Document doc=sb.build(new File("src\\xml\\phones.xml"));Element apple=doc.getRootElement().getChild("apple");Element ip5s=apple.getChild("ip5s");int newPrice=ip5s.getAttribute("price").getIntValue()-500;ip5s.setAttribute("price", newPrice+"");Element ip6s=apple.getChild("ip6s");String newInfo=ip6s.getText().trim()+",支持3d touch";ip6s.setText(newInfo);Format format=Format.getPrettyFormat();XMLOutputter out=new XMLOutputter(format);out.output(doc, new FileOutputStream("src\\xml\\new_phones.xml"));System.out.println("修改完成");}private static void demo1() throws Exception {SAXBuilder sb=new SAXBuilder();Document doc=sb.build(new File("src\\xml\\phones.xml"));Element phones=doc.getRootElement();Map<String,String> map=new HashMap<String,String>();List<Element> listSony=phones.getChild("sony").getChildren();List<Element> listApple=phones.getChild("apple").getChildren();for(Element sony:listSony ){int price=sony.getAttribute("price").getIntValue();if(price<4500){String name=sony.getName();String info=sony.getText().trim();map.put(name, info);}}for(Element apple:listApple){int price=apple.getAttribute("price").getIntValue();if(price>3500){String name=apple.getName();String info=apple.getTextTrim().trim();map.put(name, info);}}System.out.println("map:"+map);}}


0 0
原创粉丝点击