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元
<?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
- JDOM升级版练习
- Jdom
- JDOM
- JDOM
- JDom
- JDOM
- JDOM
- JDOM
- JDOM
- jdom
- JDOM
- JDOM
- jdom
- JDom
- JDOM
- JDOM
- jdom
- JDOM
- 翻译 /documentation/kobject.txt
- 虚拟机ssh免密码登陆
- 一 地图的加载与显示 关于GMap的介绍与使用可以看我以前的文章:
- 第三方
- Eclipse 导入项目乱码问题
- JDOM升级版练习
- HTTP协议头——Content-MD5
- Java 多线程核心技术梳理
- 利用 jQuery UI 和 Ajax 创建可定制的 Web 界面
- Django个人网站中加入Markdown编辑功能
- Shader配合后期模拟模糊折射
- 爱谱华顿2014经典案例巡展——楼宇篇
- HDU 3584 树状数组
- C语言(++地址)和(++数值)的区别