book.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
<书 ISBN="a0001" 出版社="北京智">
<书名>Java就业培训教程</书名>
<作者>张祥</作者>
<批发价>48.00</批发价>
<批发价>48.00</批发价>
<批发价>48.00</批发价>
<售价>38.00</售价>
<内部价>99.00</内部价>
<内部价>99.00</内部价>
<内部价>99.00</内部价>
</书>
<书 ISBN="b0001" 出版社="北京智">
<书名>JavaScript网页开发</书名>
<作者>毕东</作者>
<售价>28.00元</售价>
</书>
</书架>
package cn.itcast.jaxp;
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.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;
//利用Jaxp进行Dom方式解析
public class JaxpDomDemo {
public static void main(String[] args) throws Exception {
// 得到解析工厂 DocumentBuilderFactory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 得到解析器 DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析指定的XML文档,得到代表内存DOM树的Document对象
Document document = builder.parse("src/book.xml");
test6(document, "内部价");
}
public static void test6(Document document, String str) throws Exception {
//找到内部价节点的链表
NodeList nlist = document.getElementsByTagName(str);
//遍历每一个内部价节点
int length = nlist.getLength()
for (int i=0; i<length; ++i) {
Node nd = nlist.item(i);
nd.getParentNode().removeChild(nd);
}
//把内存中的Document数值写入磁盘文档中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer ts = factory.newTransformer();
ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));
}
就是上面这玩意了,不过上面是错的,想了半个小时才发现是哪里出问题了,感觉不容易,特留贴纪念
<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
<书 ISBN="a0001" 出版社="北京智">
<书名>Java就业培训教程</书名>
<作者>张祥</作者>
<批发价>48.00</批发价>
<批发价>48.00</批发价>
<批发价>48.00</批发价>
<售价>38.00</售价>
<内部价>99.00</内部价>
<内部价>99.00</内部价>
<内部价>99.00</内部价>
</书>
<书 ISBN="b0001" 出版社="北京智">
<书名>JavaScript网页开发</书名>
<作者>毕东</作者>
<售价>28.00元</售价>
</书>
</书架>
package cn.itcast.jaxp;
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.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;
//利用Jaxp进行Dom方式解析
public class JaxpDomDemo {
public static void main(String[] args) throws Exception {
// 得到解析工厂 DocumentBuilderFactory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 得到解析器 DocumentBuilder
DocumentBuilder builder = factory.newDocumentBuilder();
// 解析指定的XML文档,得到代表内存DOM树的Document对象
Document document = builder.parse("src/book.xml");
test6(document, "内部价");
}
public static void test6(Document document, String str) throws Exception {
//找到内部价节点的链表
NodeList nlist = document.getElementsByTagName(str);
//遍历每一个内部价节点
int length = nlist.getLength()
for (int i=0; i<length; ++i) {
Node nd = nlist.item(i);
nd.getParentNode().removeChild(nd);
}
//把内存中的Document数值写入磁盘文档中
TransformerFactory factory = TransformerFactory.newInstance();
Transformer ts = factory.newTransformer();
ts.transform(new DOMSource(document), new StreamResult("src/book.xml"));
}
就是上面这玩意了,不过上面是错的,想了半个小时才发现是哪里出问题了,感觉不容易,特留贴纪念