简单的一个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<书架>
<书>
<书名 name="wang">web实战开发</书名>
<作者>王国辉</作者>
<售价>100</售价>
</书>
<书>
<书名>java核心技术</书名>
<作者>Gary.Cornnell</作者>
<售价>100</售价>
</书>
</书架>
然后用java写程序来读取该文件
import java.io.FileOutputStream;
import java.io.IOException;
//所有相关的包都是org.w3c.dom
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Factory {
/*public static void main(String[] args) throws Exception
{
//创建工厂
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
//创建dom解析器
DocumentBuilder builder=factory.newDocumentBuilder();
//解析xml文档,得到代表文档的document
Document document=builder.parse("src/book.xml");
}
*/
@Test
public void read() throws Exception
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml");
NodeList list=document.getElementsByTagName("书名");
Node node=list.item(1);
String content=node.getTextContent();
System.out.println(content);
}
@Test
public void read1() throws Exception
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml");
Node node=document.getElementsByTagName("书架").item(0);
root(node);
}
private void root(Node node) //私有方法才能运行成功
{
if(node instanceof Element)
{
System.out.println(node.getNodeName());
}
NodeList list=node.getChildNodes();
for(int i=0;i<list.getLength();i++)
{
Node child=list.item(i);
root(child);
}
}
@Test
public void read3() throws Exception
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml");
Element bookname=(Element)document.getElementsByTagName("书名").item(0);
//在知道类型的情况下转化
String value=bookname.getAttribute("name");
System.out.println(value);
}
@Test
public void read4() throws Exception
{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder Builder=factory.newDocumentBuilder();
Document document=Builder.parse("G:\\JAVA TEST\\Test\\src\\test1\\book.xml");
//创建节点
Element Class=document.createElement("类别");
Class.setTextContent("it");
//把该元素添加到节点
//获得参考节点
Element refnode=(Element)document.getElementsByTagName("售价").item(0);
Element book=(Element)document.getElementsByTagName("书").item(0);
//插入到指定位置
book.insertBefore(Class, refnode);
//把更新内容保存的xml文档
TransformerFactory transformerfactory=TransformerFactory.newInstance();
Transformer transformer=transformerfactory.newTransformer();
transformer.transform(new DOMSource(document),new StreamResult(new FileOutputStream("G:\\JAVA TEST\\Test\\src\\test1\\book.xml")));
}
}