import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class Jaxpdemo1 {
public static void main(String []args) throws Exception
{
/*
* 1 创建解析器工厂
* 2.根据解析器工厂实例来创建解析器
* 3 通过解析器的parse方法来解析返回Document对象
* 4.根据需要可以进行获取节点,增加节点,修改节点,遍历节点等操作
* 5.在实现操作后,如果是对源文件进行更改的话,记得重写到xml
*
* 重写步骤:
* 1.获取重写器工厂
* 2.通过重写器工厂实例来创建重写器
*3.通过重写器的transform方法把修改后的文件写到xml文件中
*/
method1();
}
private static void method4() throws ParserConfigurationException,
SAXException, IOException {
//遍历元素节点
DocumentBuilderFactory db=DocumentBuilderFactory.newInstance();
DocumentBuilder buider=db.newDocumentBuilder();
Document d=buider.parse("src/1.xml");
list(d);
}
private static void list(Node d) {
if(d.getNodeType()==Node.ELEMENT_NODE)
{
System.out.println(d.getNodeName());}
NodeList nodeList=d.getChildNodes();
for(int i=0;i<nodeList.getLength();i++)
{
Node node =nodeList.item(i);
list(node);
}
}
private static void method5() throws ParserConfigurationException,
SAXException, IOException, TransformerFactoryConfigurationError,
TransformerConfigurationException, TransformerException {
//删除节点
DocumentBuilderFactory db=DocumentBuilderFactory.newInstance();
DocumentBuilder buider=db.newDocumentBuilder();
Document d=buider.parse("src/1.xml");
NodeList nl=d.getElementsByTagName("age");
Node n=nl.item(0);
Node n2=n.getParentNode();
n2.removeChild(n);
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
transformer.transform(new DOMSource(d), new StreamResult("src/1.xml"));
}
private static void method3() throws ParserConfigurationException,
SAXException, IOException, TransformerFactoryConfigurationError,
TransformerConfigurationException, TransformerException {
//修改节点内容
DocumentBuilderFactory db=DocumentBuilderFactory.newInstance();
DocumentBuilder buider=db.newDocumentBuilder();
Document d=buider.parse("src/1.xml");
NodeList nl=d.getElementsByTagName("name");
Node n=nl.item(0);
n.setTextContent("小欢");
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
transformer.transform(new DOMSource(d), new StreamResult("src/1.xml"));
}
private static void method2() throws ParserConfigurationException,
SAXException, IOException, TransformerFactoryConfigurationError,
TransformerConfigurationException, TransformerException {
//新增加结点
DocumentBuilderFactory db=DocumentBuilderFactory.newInstance();
DocumentBuilder buider=db.newDocumentBuilder();
Document d=buider.parse("src/1.xml");
NodeList nl=d.getElementsByTagName("name");
Node n=nl.item(0);
Node Text=d.createTextNode("小王");
Node tag=d.createElement("name");
tag.appendChild(Text);
n.appendChild(tag);
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
transformer.transform(new DOMSource(d), new StreamResult("src/1.xml"));
}
private static void method1() throws ParserConfigurationException,
SAXException, IOException {
//遍历标签明为age的结点
DocumentBuilderFactory buidderfactory =DocumentBuilderFactory.newInstance();
DocumentBuilder db=buidderfactory.newDocumentBuilder();
Document document=db.parse("src/1.xml");
NodeList nl=document.getElementsByTagName("age");
for(int i=0;i<nl.getLength();i++)
{
Node name=nl.item(i);
String s=name.getTextContent();
System.out.println(s);
}
}
}
jaxp学习(一) jaxp用dom解析xml文件(遍历,修改,删除,新建)操作
猜你喜欢
转载自blog.csdn.net/weixin_43752167/article/details/88138161
周排行