(手动建立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);
}
}