package domaction;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Text;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class DOMAction {
public void insertDocument(Document doc, String parent, int index,
Element elm, File file)
throws TransformerFactoryConfigurationError, FileNotFoundException,
TransformerException {
NodeList nl = doc.getElementsByTagName(parent);
Element n = (Element) nl.item(index);
n.insertBefore(elm, n.getFirstChild());
this.toXml(doc, file);
}
public void updateDocument(Document doc, Element elm, String value,
File file) throws FileNotFoundException, TransformerException {
if (elm.getFirstChild().getNodeValue() != null) {
elm.getFirstChild().setNodeValue(value);
} else {
Text text = doc.createTextNode(value);
elm.insertBefore(text, elm.getFirstChild());
}
this.toXml(doc, file);
}
public void removeDocument(Document doc, Element elm, File file)
throws FileNotFoundException, TransformerException {
elm.getParentNode().removeChild(elm);
this.toXml(doc, file);
}
public void toXml(Document doc, File file) throws FileNotFoundException,
TransformerException {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
DOMSource dos = new DOMSource(doc);
StreamResult sr = new StreamResult(new FileOutputStream(file));
t.setOutputProperty(OutputKeys.ENCODING, "GB2312");
t.transform(dos, sr);
}
public static void main(String agrs[]) {
File file = new File("student.xml");
DOMParser parser = new DOMParser();
try {
parser.parse(new InputSource(new FileInputStream(file)));
Document doc = parser.getDocument();
Element elm = doc.createElement("student");
Element elmc1 = doc.createElement("name");
Element elmc2 = doc.createElement("age");
Text text1 = doc.createTextNode("Mary");
Text text2 = doc.createTextNode("23");
elmc1.appendChild(text1);
elmc2.appendChild(text2);
elm.appendChild(elmc1);
elm.appendChild(elmc2);
DOMAction dia = new DOMAction();
dia.insertDocument(doc, "students", 0, elm, file);
dia.updateDocument(doc, elmc1, "value", file);
dia.removeDocument(doc, elmc1, file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
xml 实例.rar (47个子文件)
XML基础实例
第四章 使用XSLT
test.html 344B
MyTransformer.java 1KB
employees_if.xsl 748B
Example1.xsl 381B
Example1.xml 479B
employees_sort.xsl 723B
students.xml 456B
employees.xml 1KB
employees_variable.xsl 2KB
students.xsl 255B
student.xml 2KB
employees_sumcount.xsl 670B
student.xsl 2KB
employees_foreach.xsl 635B
employees_chooseotherwise.xsl 972B
MyTransformer.class 1KB
employees_valueof.xsl 688B
第五章 数据岛
xsldso.html 2KB
javascriptSetResultCount_DSO.html 880B
javascriptResultAction_DSO.html 3KB
employees.xml 500B
outside_DSO.html 640B
inner_DSO.html 1KB
javascriptOnload_DSO.html 809B
第三章 文档对象模型
studentInfo.xml 466B
DOMSample.java 2KB
DOMAction.java 3KB
DOMStudenntsInfo.java 2KB
DOMNameSpace.java 3KB
student.xml 203B
DOMInsert.java 3KB
studentNamespace.xml 321B
第一章 XML基础
DeclareDtdElement.xml 778B
DataType.xml 401B
DeclareDtdAttlist.xml 2KB
testNamespace.xml 478B
Entity.xml 279B
第二章 Schema
simpleTypeDemo.xsd 2KB
OccursDemo.xsd 479B
complexTypeDemo.xml 276B
extension.xml 208B
simpleTypeDemo.xml 301B
complexTypeDemo.xsd 1KB
extension.xsd 841B
OccursDemo.xml 236B
nameSpace.xml 204B
nameSpace.xsd 423B
共 47 条
- 1
dreameng7
- 粉丝: 6
- 资源: 34
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0