# import java.io.FileInputStream;
# import java.io.FileNotFoundException;
# import java.io.FileOutputStream;
# import java.io.IOException;
# import java.io.InputStream;
# import java.io.OutputStreamWriter;
# import java.io.Writer;
# import java.util.Iterator;
# import java.util.List;
# import org.dom4j.Document;
# import org.dom4j.DocumentException;
# import org.dom4j.DocumentHelper;
# import org.dom4j.Element;
# import org.dom4j.io.OutputFormat;
# import org.dom4j.io.SAXReader;
# import org.dom4j.io.XMLWriter;
# import org.xml.sax.EntityResolver;
# import org.xml.sax.InputSource;
# import org.xml.sax.SAXException;
#
# public class MyTest {
# Document doc = null;
#
# public MyTest() throws DocumentException, IOException, SAXException {
# Document doc = loadXML("class.xml"); // 载入XML文档
# System.out.println(doc.asXML());
# printDoc(doc); // 打印XML文档
# storeDoc(doc, "new.xml"); // 把XML文档存入硬盘
# doc = valideDoc("class.xml"); // 校验dtd XML文档
# printDoc(doc);
# doc = validateDocBySxd("classSchema.xml"); // 校验Schema文档
# printDoc(doc);
# String url = getClass().getResource("/xml/dom4j/wkjava/class.xsd").toString();
# doc = validateDocBySxd("classSchema.xml", url); // 校验Schema文档(俩参数)
# printDoc(doc);
# doc = createDoc(); // 创建Schema文档
# storeDoc(doc, "root.xml");
# doc = validateDocBySxd("classSchema.xml");
# updateZip(doc, "102202"); // 在文档中修改原属
# printDoc(doc);
# doc = validateDocBySxd("classSchema.xml");
# printNames(doc); // 打印文档中所有学生名字
# System.out.println(getStudentCount(doc));
# }
#
# public static void main(String[] args) {
# try {
# new MyTest();
# } catch (FileNotFoundException e) {
# e.printStackTrace();
# } catch (DocumentException e) {
# e.printStackTrace();
# } catch (IOException e) {
# e.printStackTrace();
# } catch (SAXException e) {
# e.printStackTrace();
# }
# }
#
# public Document loadXML(String xmlfile) throws FileNotFoundException, DocumentException {
# SAXReader reader = new SAXReader();
# doc = reader.read(new FileInputStream(xmlfile));
# return doc;
# }
#
# public void printDoc(Document doc) throws IOException {
# Writer out = new OutputStreamWriter(System.out, "gb2312");
# OutputFormat format = OutputFormat.createPrettyPrint();
# XMLWriter writer = new XMLWriter(out, format);
# writer.write(this.doc);
# out.flush();
# }
#
# public void storeDoc(Document doc, String filename) throws IOException {
# Writer out = new OutputStreamWriter(new FileOutputStream(filename), "utf-8");
# OutputFormat format = OutputFormat.createPrettyPrint();
# XMLWriter writer = new XMLWriter(out, format);
# writer.write(this.doc);
# printDoc(doc);
# out.close();
# }
#
# public Document valideDoc(String xmlfile) throws DocumentException, IOException {
# EntityResolver resolver = new EntityResolver() {
# public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
# if (publicId.equals("//class from weiking")) {
# InputStream in = new FileInputStream("class.dtd");
# return new InputSource(in);
# }
# return null;
# }
# };
# SAXReader reader = new SAXReader(true);
# reader.setEntityResolver(resolver);
# Document doc = reader.read(new FileInputStream(xmlfile));
# return doc;
# }
#
# public Document validateDocBySxd(String xmlfile) throws SAXException, DocumentException, IOException {
# SAXReader reader = new SAXReader(true);
# reader.setFeature("http://apache.org/xml/features/validation/schema", true);
# Document doc = reader.read(new FileInputStream(xmlfile));
# return doc;
# }
#
# public Document validateDocBySxd(String xmlfile, String SchemaUrl) throws SAXException, FileNotFoundException,
# DocumentException {
# SAXReader reader = new SAXReader(true);
# reader.setFeature("http://xml.org/sax/features/validation", true);
# reader.setFeature("http://apache.org/xml/features/validation/schema", true);
# reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
# reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", SchemaUrl);
# Document doc = reader.read(new FileInputStream(xmlfile));
# return doc;
# }
#
# public Document createDoc() {
# Document doc = DocumentHelper.createDocument();
# Element root = doc.addElement("root");
# Element author2 = root.addElement("author").addAttribute("name", "Toby").addAttribute("location", "Germany").addText(
# "Tobias Rademacher");
# Element author1 = root.addElement("author").addAttribute("name", "James").addAttribute("location", "UK").addText(
# "James Strachan");
# return doc;
# }
#
# public void updateZip(Document doc, String zip) {
# String xpath = "/Class/Teacher/zip";
# Element e = (Element) doc.selectSingleNode(xpath);
# e.setText(zip);
# }
#
# public void printNames(Document doc) {
# String xpath = "/Class/Students/Student/name";
# List list = doc.selectNodes(xpath);
# for (Iterator i = list.iterator(); i.hasNext();) {
# Element e = (Element) i.next();
# System.out.println(e.element("last").getText() + e.valueOf("first"));
# }
# }
#
# public int getStudentCount(Document doc) {
# int count = 0;
# String xpath = "count(/Class/Students/Student)";
# count = doc.numberValueOf(xpath).intValue();
# // String value = doc.valueOf(xpath);
# // count = Integer.parseInt(value);
# return count;
# }
# }
分享到:
相关推荐
dom4j基本操作整理
在实际使用中,以下是一些基本操作的例子: 1. **读取XML文档**:可以通过`DocumentFactory`创建`DocumentBuilder`,然后使用`parse()`方法加载XML文件。例如: ```java DocumentFactory factory = ...
《Dom4j的使用.doc》文档很可能是对DOM4J基本操作和常见用法的详细教程。它可能会涵盖如何创建XML文档,添加元素,设置属性,处理文本节点,以及如何使用XPath进行查询。此外,文档可能还会讲解如何解析已存在的XML...
总的来说,这个"dom4j基本例子"涵盖了DOM4J的基本操作,包括XML的解析、元素的增删改查以及使用XPath进行查询。通过学习和理解这个例子,你可以更好地掌握DOM4J库,并将其应用到自己的XML处理任务中。如果你深入研究...
4. **操作XML**:DOM4J支持添加、删除、修改XML元素、属性和文本。例如,可以使用`Element.addElement()`来添加子元素,`Attribute.setValue()`来改变属性值。 5. **XPath查询**:DOM4J支持XPath表达式,允许开发者...
1. **介绍**:解释DOM4J的基本概念和设计目标,以及如何在项目中引入DOM4J库。 2. **安装与配置**:指导用户如何将DOM4J添加到Java项目中,包括Maven依赖、Gradle构建脚本或者直接添加JAR文件。 3. **基本概念**:...
3. 功能强大:DOM4J不仅支持基本的XML解析,还提供了高级特性,如XPath表达式支持、SAX和DOM的集成、XML Schema验证、XML编写和输出等。XPath是一种强大的查询语言,能够方便地定位XML文档中的节点。 4. 扩展性:...
通过研究其中的代码,你可以掌握DOM4J处理XML的基本技巧,并理解如何将其应用到实际的Java项目中,以实现XML文件的高效管理和操作。无论是新手还是有经验的开发者,都能从中受益匪浅,提升对XML处理的能力。
DOM4J的基本概念 - **Document**:这是DOM4J的核心,表示整个XML文档。它包含了一系列的元素、属性、文本等,形成一个完整的文档树。 - **Element**:元素是XML文档中最基本的结构单位,代表XML文档中的一个节点...
总结,DOM4J-2.1.1.jar作为一款强大的XML处理工具,不仅具备了基本的XML操作能力,还提供了XPath支持、事件驱动处理等功能,使得在处理XML文档时更加便捷高效。在实际开发中,无论是简单的XML解析,还是复杂的XML...
1. **DOM4J的基本概念** - **Document**: 在DOM4J中,Document代表整个XML文档,它是XML结构的根节点。 - **Element**: Element是XML文档中的一个节点,代表XML的元素,如`<tag>`。 - **Attribute**: Attribute...
在本文中,我们将深入探讨DOM4J如何进行XML操作,包括增加、删除和修改XML元素。 首先,我们需要理解XML的基本结构。XML(可扩展标记语言)是一种用于存储和传输数据的标准格式,它使用标签来描述数据。DOM4J通过...
1. **DOM4J的基本概念** - DOM4J的核心思想是提供一个灵活的、面向对象的模型来处理XML文档,包括元素、属性、文本节点等。 - 它不仅支持标准的DOM API,还提供了基于事件的SAX解析器和一个XPath实现,以满足不同...
学习DOM4J有助于理解XML处理的基本原理,提升XML文档操作的效率,同时在实际项目中能够更灵活地处理XML数据。无论是新手还是经验丰富的开发者,DOM4J都是值得掌握的技能之一。 **总结** DOM4J是一个高效的XML处理库...
DOM4J的知识点涵盖了许多方面,包括基本概念、核心组件、使用场景以及与其他XML处理库的比较。 1. **基本概念** - DOM(Document Object Model)是一种国际标准,用于表示XML文档的结构树。DOM4J则是Java中的一个...
### DOM4J基本操作 - **解析XML**:使用`DocumentHelper.parseText()`或`SAXReader.read()`方法可以将XML字符串或文件解析为`Document`对象。 - **创建XML**:通过`DocumentFactory`实例创建元素,然后添加子元素...
以下是一个使用DOM4J解析SOAP消息的基本步骤: 1. **导入DOM4J库**:在Java项目中,首先需要添加DOM4J的依赖。如果你使用的是Maven,可以在pom.xml文件中添加如下依赖: ```xml <groupId>dom4j <artifactId>...
#### 二、DOM4j基本操作 ##### 1. Document对象相关 - **读取XML文件获取Document对象:** ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); ``` 这行...