<?xmlversion="1.0"encoding="UTF-8"?>
<书架>
<书>
<书名name="小黄书">Java就业培训教程</书名>
<作者>张兆祥</作者>
<售价>999元</售价>
<售价>59yuan</售价>
<售价>1000元</售价>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张兆祥2</作者>
<售价>12</售价>
</书>
</书架>
packageday3;
publicclassBook_booksax3 {
privateString name;
privateString author;
privateString price;
publicString getName() {
returnname;
}
publicvoidsetName(String name) {
this.name = name;
}
publicString getAuthor() {
returnauthor;
}
publicvoidsetAuthor(String author) {
this.author = author;
}
publicString getPrice() {
returnprice;
}
publicvoidsetPrice(String price) {
this.price = price;
}
}
<?xmlversion="1.0"encoding="UTF-8"?>
<书架>
<书>
<书名name="小黄书">Java就业培训教程</书名>
<作者>张兆祥</作者>
<售价>999元</售价>
<售价>59yuan</售价>
<售价>1000元</售价>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张兆祥2</作者>
<售价>12</售价>
</书>
packageday3_2;
importjava.io.File;
importjava.io.FileOutputStream;
importjava.util.List;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.SAXReader;
importorg.dom4j.io.XMLWriter;
importorg.junit.Test;
publicclassdom4j {
@Test
//读取第二本书的书名:<书名>JavaScript网页开发</书名>
publicvoidreader()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementroot=document.getRootElement();
Elementbook=(Element)root.elements("书").get(1);
Stringvalue=book.element("书名").getText();
System.out.println(value);
}
@Test
//读取第一本书的属性:<书名 name="小黄书">Java就业培训教程</书名>
publicvoidreadAtt()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementroot=document.getRootElement();
Elementbook=(Element)root.elements("书").get(0);
Stringvalue=book.element("书名").attributeValue("name");
System.out.println(value);
}
@Test
//在第一本书添加新的售价:<售价>1000元</售价>
publicvoidadd()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementbook=document.getRootElement().element("书");
book.addElement("售价").setText("1000元");
OutputFormatformat= OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream( "src/day3_2/book.xml" ),"gb2312"));
XMLWriterwriter=newXMLWriter(newFileOutputStream("src/day3_2/book.xml"),format);
writer.write(document);
writer.close();
}
@Test
//在第一本书指定位置添加新的售价:<售价>999元</售价>
publicvoidadd2()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementbook=document.getRootElement().element("书");
Listlist=book.elements();//[书名,作者,售价,售价..]
Elementprice=DocumentHelper.createElement("售价");
price.setText("999元");
list.add(2,price);
OutputFormatformat= OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream( "src/day3_2/book.xml" ),"gb2312"));
XMLWriterwriter=newXMLWriter(newFileOutputStream("src/day3_2/book.xml"),format);
writer.write(document);
writer.close();
}
@Test
//删除上面添加的书售价 节点
publicvoiddelete()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementprice=document.getRootElement().element("书").element("售价");
price.getParent().remove(price);
OutputFormatformat= OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream( "src/day3_2/book.xml" ),"gb2312"));
XMLWriterwriter=newXMLWriter(newFileOutputStream("src/day3_2/book.xml"),format);
writer.write(document);
writer.close();
}
@Test
//更新: <作者>张三</作者>
publicvoidupdate()throwsException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Elementbook=(Element)document.getRootElement().elements("书").get(1);
book.element("作者").setText("张三");
OutputFormatformat= OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
// XMLWriter writer = new XMLWriter(new OutputStreamWriter(new FileOutputStream( "src/day3_2/book.xml" ),"gb2312"));
XMLWriterwriter=newXMLWriter(newFileOutputStream("src/day3_2/book.xml"),format);
writer.write(document);
writer.close();
}
}
<?xmlversion="1.0"encoding="UTF-8"?>
<书架>
<书>
<书名name="小黄书"number="123456">Java就业培训教程</书名>
<作者>张兆祥</作者>
<售价>999元</售价>
<售价>59yuan</售价>
<售价>1000元</售价>
</书>
<书>
<书名>JavaScript网页开发</书名>
<作者>张兆祥2</作者>
<售价>12</售价>
</书>
</书架>
packageday3_2;
importjava.io.File;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.io.SAXReader;
//应用xpath提取xml文档的数据
publicclassxpath {
publicstaticvoidmain(String[]args)throwsDocumentException {
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Stringvalue=document.selectSingleNode("//作者").getText();
System.out.println(value);
}
}
packageday3_2;
importjava.io.File;
importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.Node;
importorg.dom4j.io.SAXReader;
publicclassxpath_matching {
publicstaticvoidmain(String[]args)throwsDocumentException {
Stringname="小黄书1";
Stringnumber="123456";
SAXReaderreader=newSAXReader();
Documentdocument=reader.read(newFile("src/day3_2/book.xml"));
Nodenode=document.selec