Java XMLドキュメントの解析(dom 4 j解析)
5495 ワード
1.要素の取得:
@Test // user
public void readDemo() throws Exception{
// DOM
SAXReader sax = new SAXReader();
Document dom = sax.read("./xml/user.xml");
//
/**
* ELement :
* element(name)//
* elements(name) // , list
* elementIterator()// , Iterator
*/
Element root = dom.getRootElement();
Element eUser = root.element("user");
//
String id1=eUser.attributeValue("id");
String id2=eUser.attribute("id").getValue();
System.out.println("id1:"+id1+" id2:"+id2);
//
String name=eUser.element("name").getText(); //
String age=eUser.elementText("age"); //
System.out.println("name:"+name+" age:"+age);
}
@Test // , user
public void iteratorDemo() throws Exception{
SAXReader sax=new SAXReader();
Document dom=sax.read("./xml/user.xml");
Element root=dom.getRootElement();
// Iterator it = root.elementIterator(); //
Iterator it = root.elementIterator("user"); //
while(it.hasNext()){
Element element=it.next();
String id=element.attributeValue("id");
String name=element.elementText("name");
String age=element.elementText("age");
System.out.println(id+","+name+","+age);
}
}
2.ドキュメントの永続化:@Test // aa --
public void addDemo() throws Exception{
Document dom=new SAXReader().read("./xml/user.xml");
Element root=dom.getRootElement();
// root aa
Element aa = root.addElement("aa");
// aa
aa.addAttribute("id", "aa1001");
// aa :name
Element eA_Name = aa.addElement("name");
eA_Name.setText("aaaaaa");
// aa :age
aa.addElement("age").setText("991");
//
//1.dom.write(FileWrite())
// Writer w=new FileWriter("./xml/user.xml");
// dom.write(w); //
// w.close();
//2.XMLWriter writer(dom)
// FileWriter fw=new FileWriter("./xml/user.xml");
// XMLWriter w=new XMLWriter(fw);
// w.write(dom);
// w.close();
//3.
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// XMLWriter
XMLWriter w=new XMLWriter(new FileWriter("./xml/user.xml"),format);
w.write(dom);
w.close();
}
3.要素を削除:@Test //
public void delDemo() throws Exception{
Document dom=new SAXReader().read("./xml/user.xml");
Element root=dom.getRootElement();
List list=root.elements();
Element eLast=list.get(list.size()-1);
eLast.getParent().remove(eLast);
//
XMLWriter w=new XMLWriter(new FileWriter("./xml/user.xml"));
w.write(dom);
w.close();
}
4.要素の変更:@Test //
public void updateDemo() throws Exception{
Document dom=new SAXReader().read("./xml/user.xml");
Element root=dom.getRootElement();
//
List list = root.elements();
Element eLast=list.get(list.size()-1);
//
// ,
eLast.addAttribute("id", " id");
Element name = eLast.element("name");
name.setText(" name");
//
XMLWriter w=new XMLWriter(new FileWriter("./xml/user.xml"));
w.write(dom);
w.close();
}
5.要素を追加:// xml :aa.xml
@Test
public void createNewXMLDemo() throws Exception{
Document dom=DocumentHelper.createDocument();
Element root=dom.addElement("cities");
Element e=root.addElement("city");
e.addAttribute("id", "c1001");
Element name = e.addElement("name");
name.setText(" ");
//
XMLWriter w=new XMLWriter(new FileWriter("./xml/aa.xml"));
w.write(dom);
w.close();
}
6.xpath ////////////xpath : Xpath_simples.pdf
/** dom ,dom4j
* Xpath : dom Node ( xpath )
*
* 1)selectNodes(xpathExpression)--List
* 2)selectObject(xpathExpression)--Object
* 3)selectSingleNode(xpathExpression)--Node
*
* : Node , Element
* dom , x.selectNodes(xpathExpression) dom.selectNodes(xpathExpression)
*
*/
@Test
public void xpathDemo() throws Exception{
Document dom=new SAXReader().read("./xml/user.xml");
// name
// String xpath="//name";
// String xpath="//user/name";// user name /
// String xpath="//user//name";// user name
String xpath="/users/name";
List list = dom.selectNodes(xpath);
for(Element e:list){
System.out.println(e.getText());
}
}
@Test
public void xpathDemo2() throws Exception{
Document dom=new SAXReader().read("./xml/user.xml");
// String xpath="//user[@name][@pwd]"; // name pwd user
String xpath="//user[@name='dragon'][@pwd='1234']"; // name "dragon" pwd"" user
List list = dom.selectNodes(xpath);
for(Element e:list){
System.out.println(e.getText());
}
}
Xpath_simples.pdfは私のリソースで見つけることができます.