JDOM简化与XML的交互,并且比使用DOM实现更快,JDOM与DOM主要有两方面不同。
1:JDOM使用具体的类而不用接口,实现这些类简化领API,但是也限制领灵活性
2:API使用了大量的Collections类,简化领那些已经熟悉这些类的java开发者的使用
dom4j是一个非常优秀的java Xml API,具有性能优异,功能强大和极端易用的特点(推荐使用)
JDOM解析示例:
public class Jdomparse {
static Person p=new Person();
public static void main(String[] args) {
JdomParseXml();
}
private static void JdomParseXml() {
// 用JDOM解析
SAXBuilder sax=new SAXBuilder();
InputStream in=Thread.currentThread().getContextClassLoader().
getResourceAsStream("day0702XmlDemo/Demo.xml");
try {
Document doc = sax.build(in);
Element root = doc.getRootElement();
//获取根节点
List<Element> children = root.getChildren();
System.out.println(children);
for(int i=0;i<children.size();i++){
Element element = children.get(i);
p.setPerson(element.getAttributeValue("id"));
List<Element> ch = element.getChildren();
for(int j=0;j<ch.size();j++){
Element per = ch.get(j);
String name = per.getName();
if("name".equals(name)){
p.setName(per.getText());
}else if("age".equals(name)){
p.setAge(Integer.parseInt(per.getText()));
}else if("sex".equals(name)){
p.setSex(per.getText());
}else if("tel".equals(name)){
p.setTel(Integer.parseInt(per.getText()));
}
}
System.out.println(p.toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
DOM4j示例:
public class Dom4JParse {
private static Person p=new Person();
public static void main(String[] args) {
Dom4jParseXml();
}
private static void Dom4jParseXml() {
InputStream is=Thread.currentThread().getContextClassLoader().getResourceAsStream("day0702XmlDemo/Demo.xml");
SAXReader reader=new SAXReader();
try {
Document doc = reader.read(is);
//获取更节点
Element root = doc.getRootElement();
//获取迭代器
Iterator<Element> iterator = root.elementIterator();
while(iterator.hasNext()){
Element e = iterator.next();
Iterator<Element> i = e.elementIterator();
p.setPerson(e.attributeValue("id"));
while(i.hasNext()){
Element per = i.next();
String nodeName = per.getName();
if("name".equals(nodeName)){
p.setName(per.getText());
}else if(nodeName.equals("age")){
p.setAge(Integer.parseInt(per.getText()));
}else if(nodeName.equals("sex")){
p.setSex(per.getText());
}else if(nodeName.equals("tel")){
p.setTel(Integer.parseInt(per.getText()));
}
}
System.out.println(p.toString());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
《Android版本更新、热更新》系列课程视频
版本更新6.0,7.0统统搞定!!
热修复不在麻烦,再也不用担心上线后出bug!!
http://edu.youkuaiyun.com/course/detail/6523
http://edu.youkuaiyun.com/course/play/6523/131198
《Kotlin语法基础到实战开发》系列课程视频
http://edu.youkuaiyun.com/course/detail/6409?locationNum=7&fps=1&ref=srch&loc=1