public void add() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
//新增节点
Element newElement=DocumentHelper.createElement("特价");
newElement.addText("8.8元");
//节点加入到XML文档内存中
rootElement.element("书").add(newElement);
//FileWriter字符写入,底层默认是gb2312导致utf-8乱码
//FileWriter writer = new FileWriter("book.xml");
//document.write(writer);
// writer.close();
//字节流写入
// Writer writer = new OutputStreamWriter(new FileOutputStream("book.xml"),"utf-8");
// document.write(writer);
// writer.close();
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void find() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
//获取第一次出现书/书名的标签
String bookNmae=rootElement.element("书").element("书名").getText();
System.out.println(bookNmae);
//获取XML出现标签的
List<Element> list=rootElement.elements("书");
for(Element element : list)
{
String book1=element.element("书名").getText();
System.out.println(book1);
}
}
@Test
public void update() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
rootElement.element("书").element("书名").setText("未知");
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void delete() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
Element e=rootElement.element("书").element("特价");
e.getParent().remove(e);
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void addAttr()throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
rootElement.addAttribute("测试", "答案");
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void findXpath()throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
List<Element> list=rootElement.selectNodes("/书架/书/书名");
System.out.println(list);
}
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
//新增节点
Element newElement=DocumentHelper.createElement("特价");
newElement.addText("8.8元");
//节点加入到XML文档内存中
rootElement.element("书").add(newElement);
//FileWriter字符写入,底层默认是gb2312导致utf-8乱码
//FileWriter writer = new FileWriter("book.xml");
//document.write(writer);
// writer.close();
//字节流写入
// Writer writer = new OutputStreamWriter(new FileOutputStream("book.xml"),"utf-8");
// document.write(writer);
// writer.close();
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void find() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
//获取第一次出现书/书名的标签
String bookNmae=rootElement.element("书").element("书名").getText();
System.out.println(bookNmae);
//获取XML出现标签的
List<Element> list=rootElement.elements("书");
for(Element element : list)
{
String book1=element.element("书名").getText();
System.out.println(book1);
}
}
@Test
public void update() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
rootElement.element("书").element("书名").setText("未知");
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void delete() throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
Element e=rootElement.element("书").element("特价");
e.getParent().remove(e);
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void addAttr()throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
rootElement.addAttribute("测试", "答案");
OutputFormat format =OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer=new XMLWriter(new FileOutputStream("book.xml"),format);
writer.write(document);
writer.close();
}
@Test
public void findXpath()throws Exception
{
//创建解析器
SAXReader reader = new SAXReader();
//获取XML文档
Document document=reader.read("book.xml");
//获取XML根节点
Element rootElement= document.getRootElement();
List<Element> list=rootElement.selectNodes("/书架/书/书名");
System.out.println(list);
}