Jdom使用详解及实例(4)
接上一节:
2、读取xml文档的例子:
java 代码
- import org.jdom.output.*;
- import org.jdom.input.*;
- import org.jdom.*;
- import java.io.*;
- import java.util.*;
- public class ReadXML{
- public static void main(String[] args) throws Exception {
- SAXBuilder builder = new SAXBuilder();
- Document read_doc = builder.build("studentinfo.xml");
- Element stu = read_doc.getRootElement();
- List list = stu.getChildren("student");
- for(int i = 0;i < list.size();i++) {
- Element e = (Element)list.get(i);
- String str_number = e.getChildText("number");
- String str_name = e.getChildText("name");
- String str_age = e.getChildText("age");
- System.out.println("---------STUDENT--------------");
- System.out.println("NUMBER:" + str_number);
- System.out.println("NAME:" + str_name);
- System.out.println("AGE:" + str_age);
- System.out.println("------------------------------");
- System.out.println();
- }
- }
- }
3、DTD验证的:
java 代码
- public class XMLWithDTD {
- public void validate() {
- try {
- SAXBuilder builder = new SAXBuilder(true);
- builder.setFeature("http://xml.org/sax/features/validation";,true);
- Document doc = builder.build(new FileReader("author.xml"));
- System.out.println("搞掂");
- XMLOutputter outputter = new XMLOutputter();
- outputter.output(doc, System.out);
- }catch(Exception e) {
- System.out.println(e);
- }
- }
- public static void main(String args[]) {
- new XMLWithDTD().validate();
- }
- }
4、XML Schema验证的:
java 代码
- public class XMLWithSchema {
- String xml="test.xml";
- String schema="test-schema.xml";
- public void validate() {
- try {
- SAXBuilder builder = new SAXBuilder(true);
- //指定约束方式为XML schema
- builder.setFeature("http://apache.org/xml/features/validation/schema";, true);
- //导入schema文件
- uilder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation";,schema);
- Document doc = builder.build(new FileReader(xml));
- System.out.println("搞掂");
- XMLOutputter outputter = new XMLOutputter();
- outputter.output(doc, System.out);
- }catch(Exception e) {
- System.out.println("验证失败:"+e);
- }
- }
- }
上面的程序就指出了要引入的XML Schema文件的位置。
5、Xpath例子:
JDOM的关于XPATH的api在org.jdom.xpath这个包里。这个包下,有一个抽象类XPath.java和实现类JaxenXPath.java, 使用时先用XPath类的静态方法newInstance(String xpath)得到XPath对象,然后调用它的selectNodes(Object context)方法或selectSingleNode(Object context)方法,前者根据xpath语句返回一组节点(List对象);后者根据一个xpath语句返回符合条件的第一个节点(Object类型)。请看jdom-1.0自带的范例程序:
它分析在web.xml文件中的注册的servlet的个数及参数个数,并输出角色名。
web.xml文件:
xml 代码
- xml version="1.0" encoding="ISO-8859-1"?>
- <web-app>
- <servlet>
- <servlet-name>snoop<!---->servlet-name>
- <servlet-class>SnoopServlet<!---->servlet-class>
- <!---->servlet>
- <servlet>
- <servlet-name>file<!---->servlet-name>
- <servlet-class>ViewFile<!---->servlet-class>
- <init-param>
- <param-name>initial<!---->param-name>
- <param-value>1000<!---->param-value>
- <description>
- The initial value for the counter <!---->
- <!---->description>
- <!---->init-param>
- <!---->servlet>
- <servlet-mapping>
- <servlet-name>mv<!---->servlet-name>
- <url-pattern>*.wm<!---->url-pattern>
- <!---->servlet-mapping>
- <distributed/>
- <security-role>
- <role-name>manager<!---->role-name>
- <role-name>director<!---->role-name>
- <role-name>president<!---->role-name>
- <!---->security-role>
- <!---->web-app>
处理程序:
java 代码
- import java.io.*;
- import java.util.*;
- public class XPathReader {
- public static void main(String[] args) throws IOException, JDOMException {
- if (args.length != 1) {
- System.err.println("Usage: java XPathReader web.xml");
- return;
- }
- String filename = args[0];//从命令行输入web.xml
- PrintStream out = System.out;
- SAXBuilder builder = new SAXBuilder();
- Document doc = builder.build(new File(filename));//得到Document对象
- // Print servlet information
- XPath servletPath = XPath.newInstance("//servlet");//,选择任意路径下servlet元素
- List servlets = servletPath.selectNodes(doc);//返回所有的servlet元素。
- out.println("This WAR has "+ servlets.size() +" registered servlets:");
- Iterator i = servlets.iterator();
- while (i.hasNext()) {//输出servlet信息
- Element servlet = (Element) i.next();
- out.print("\t" + servlet.getChild("servlet-name")
- .getTextTrim() +
- " for " + servlet.getChild("servlet-class")
- .getTextTrim());
- List initParams = servlet.getChildren("init-param");
- out.println(" (it has " + initParams.size() + " init params)");
- }
- // Print security role information
- XPath rolePath = XPath.newInstance("//security-role/role-name/text()");
- List roleNames = rolePath.selectNodes(doc);//得到所有的角色名
- if (roleNames.size() == 0) {
- out.println("This WAR contains no roles");
- } else {
- out.println("This WAR contains " + roleNames.size() + " roles:");
- i = roleNames.iterator();
- while (i.hasNext()) {//输出角色名
- out.println("\t" + ((Text)i.next()).getTextTrim());
- }
- }
- }
- }
输出结果:
C:\java>java XPathReader web.xml
This WAR has 2 registered servlets:
snoop for SnoopServlet (it has 0 init params)
file for ViewFile (it has 1 init params)
This WAR contains 3 roles:
manager
director
president
注: 要使用XPath必须导入包:saxpath.jar,jaxen-core.jar,jaxen-jdom.jar!!!!
发表评论
-
jdom学习(6)
2007-01-26 17:25 1200练习使用Jdom处理XML package sunstar. ... -
jdom学习(5)
2007-01-26 16:00 983Jdom使用详解及实例(5) 接上一节: 6、数据输入要 ... -
jdom学习(3)
2007-01-26 15:08 870Jdom使用详解及实例(3) 接上一节: 4.Attrib ... -
jdom学习(2)
2007-01-26 14:57 1021Jdom使用详解及实例(2) 接上一节: (3)DOM的 ... -
jdom学习(1)
2007-01-26 14:23 937Jdom使用详解及实例(1) 一.Jdom包简介: JDOM ...
相关推荐
jdom学习读取xml文件资料小列子,非常简单明了。
XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,特别是在Java应用程序和Spring框架中...通过阅读提供的`jdom.doc`文档和`jdom学习读取xml文件.files`中的示例,你可以更全面地掌握这些知识。
**JDom学习资料详解** JDom,全称为Java Document Object Model,是一款专为Java设计的DOM(Document Object Model)解析库。它允许开发者以一种高效、便捷的方式处理XML文档,提供了一种基于Java的API来创建、修改...
**JDOM:XML处理的利器** 在信息技术领域,XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件、文档存储等场景。为了方便开发者处理XML文档,各种解析库应运而生,其中...
源码文件jdom-src.zip则提供了JDOM的完整源代码,这对于学习和理解JDOM的工作原理,或者进行定制和扩展非常有用。源代码包含了大量的注释,可以帮助开发者深入理解JDOM的内部机制,例如如何解析XML文档,如何构建XML...
DOM(Document Object Model)是W3C制定的一种标准,它为XML和HTML文档提供了一种...在2Code和3Code这两个文件中,可能包含了这些库的具体使用示例,学习和理解这些源码可以帮助你更好地掌握DOM、JDOM和dom4j的用法。
在实际项目中,如果XML文件较小,对解析速度要求不高,JDOM可能是一个不错的选择,因为它的API设计直观,学习成本较低。然而,对于处理大型XML文件或需要频繁查询的场景,DOM4J的效率和灵活性可能更有优势。 **总结...
1. **jdom-2.0.6-javadoc.jar**: 包含了JDOM 2.0.6版本的API文档,开发者可以通过查看这个JAR来了解JDOM的所有类、接口和方法,便于学习和使用。 2. **jdom-2.0.6-sources.jar**: 提供了JDOM 2.0.6的源代码,开发者...
为了处理XML文档,开发者经常需要依赖特定的库,如JDOM和DOM4J。这两个库都是Java中常用的XML解析器,提供了不同的方法来读取、写入、操作和解析XML文档。下面将详细讨论这两个库及其在XML处理中的应用。 **JDOM** ...
对于开发者来说,这是了解和学习 JDOM 的重要资源。文档详细解释了每个类、接口和方法的用法,帮助开发者快速上手。 总结,JDOM 1.1.2 是一个强大且易于使用的 XML 处理库,特别适合 Java 开发者。其提供的 API ...
4. **源码及API文档**:JDOM1.1不仅包含了jar包,还提供了CHM格式的API文档和源代码,方便开发者学习和调试。 使用JDOM1.1进行XML操作的基本步骤: 1. **解析XML**:使用SAXBuilder类解析XML文件,将其转换为...
1. **jdom-2.0.5-javadoc.jar**:这是JDOM的API文档,开发者可以通过查看这个JAR文件中的文档来了解每个类和方法的详细信息,这对于学习和使用JDOM非常有帮助。 2. **jdom-2.0.5-sources.jar**:包含了JDOM库的源...
使用Jdom解析和组织XML 文件确实很方便,供初学者参考,希望这个对大家学习Jdom 有所帮助。通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX ...
JDOM,全称为Java Document Object Model,是一种专为Java设计的XML处理库。它提供了一种方便、高效的方式来创建、构建、修改和读取XML文档。JDOM的主要目标是简化XML处理,使得开发者能更直观地操作XML数据,而无需...
### JDOM教程知识点详解 #### 一、JDOM简介 ...通过上述知识点的学习,我们可以了解到JDOM的基本使用方法,包括创建XML文档、解析XML文档以及使用XPath进行查询等功能。这对于开发者来说是非常有价值的工具。
《JDOM英文帮助文档》是Java开发者不可或缺的参考资料,尤其对于初学者而言,它提供了全面且深入的JDOM库知识。JDOM,全称为Java Document Object Model,是Java平台上的...总之,这份文档是学习和应用JDOM的宝贵资源。
DOM4J的API设计简洁,易于学习和使用,使得开发人员可以方便地进行XML文档的读写、遍历、修改等操作。 JDOM,另一方面,是专门为Java设计的一个XML DOM实现。JDOM 2.0.5版本是一个高性能、内存效率高的库,它提供了...
总的来说,通过对JDOM源代码的深入学习,不仅可以提升你对XML处理的理解,还能帮助你更好地利用JDOM进行XML数据的处理,提高开发效率,避免潜在的问题。无论你是初次接触JDOM,还是希望深化对它的认识,研究源代码都...
为了处理XML文档,Java提供了多种库,其中dom4j和JDOM是两个常用的选择。这两个库都是Java API,允许开发者对XML进行读取、解析、创建和修改操作。 **dom4j-1.6.1** dom4j是一款功能强大且灵活的Java XML库,它提供...
在“jdom的帮助文档”中,我们可以深入学习JDOM的核心概念和使用方法。首先,JDOM通过构建树形结构来表示XML文档,每个节点可以代表XML文档的元素、属性、文本、注释等。这种结构化表示方式使得我们可以方便地遍历和...