在Digester中提供了一个包:org.apache.commons.digester.xmlrules。这个包中的类可以从一个XML文档中读取并返回一个指定的配置信息。XML文档配置文件必须使用DTD,这是xmlrules包的一部分。
下面是一个在这们例子中使用的XML规则的配置文件rules.xml。在看这个文件之前,我将有几点说明。
模式可以由两种不同的方式指定:一种是每一个XML结点属性描述一个规则,或使用<pattern>结点。这些被定义的模式对于所有的规则结点都是可用的。这两种方式可以混合使用,并且<pattern>结点可以嵌套。在这种情况下,被子结点定义的pattern被加到<pattern>结点之后。
<alias>结点用来和<set-propeties-rule>一起使用来将XML结点的属性映射成Bean的属性。下面是rules.xml的代码:
<?xml version="1.0"?>
<digester-rules>
<object-create-rule pattern="catalog" classname="Catalog" />
<set-properties-rule pattern="catalog" >
<alias attr-name="library" prop-name="library" />
</set-properties-rule>
<pattern value="catalog/book">
<object-create-rule classname="Book" />
<call-method-rule pattern="author" methodname="setAuthor"
paramcount="0" />
<call-method-rule pattern="title" methodname="setTitle"
paramcount="0" />
<set-next-rule methodname="addBook" />
</pattern>
<pattern value="catalog/magazine">
<object-create-rule classname="Magazine" />
<call-method-rule pattern="name" methodname="setName" paramcount="0" />
<pattern value="article">
<object-create-rule classname="Article" />
<set-properties-rule>
<alias attr-name="page" prop-name="page" />
</set-properties-rule>
<call-method-rule pattern="headline" methodname="setHeadline"
paramcount="0" />
<set-next-rule methodname="addArticle" />
</pattern>
<set-next-rule methodname="addMagazine" />
</pattern>
</digester-rules>
分享到:
相关推荐
`rule.xml`文件是配置 Digester 的核心,它定义了针对XML结构的规则。在`rule.xml`中,我们可以声明规则来匹配XML中的元素,并关联相应的处理动作。例如,如果XML文件有如下的结构: ```xml <element2>content2...
Config.java可能包含了一些关于 Digester 规则的配置,比如使用`addRuleSet()`或`addRule()`方法来定义当XML元素匹配时执行的Java操作。Students.java和Student.java则分别表示学生列表和单个学生的Java类。它们可能...
通过 Digester 的规则,XML文件的层级结构可以被转化为Java对象树。 5. **处理结果**:解析完成后,Java对象树已经构建完毕,你可以通过对象的引用来访问和操作数据。 在提供的"jiexi"文件中,应该包含了具体的...
要使用Digester解析XML文档,首先需要创建一个 `org.apache.commons.digester.Digester` 类的实例,并配置必要的模式和规则,最后调用 `parse()` 方法。 以下是一个简单的示例代码: ```java import org.apache....
在提供的文件列表中,有一个名为“Privilege”的文件,这可能是示例中的一个权限或者角色相关的类,或者是一个XML配置文件,用于演示如何使用Digester解析与权限或角色相关的XML数据。具体用途可能需要参考实际的...
3. **解析 XML**:创建好 Digester 实例后,使用 `parse` 方法读取 XML 文件并执行预定义的规则。代码示例如下: ```java Digester digester = new Digester(); digester.setValidating(false); // 关闭验证,...
在这个示例中,我们首先创建了一个`Digester`实例,并设置了必要的规则来处理`students.xml`文件。然后,我们通过`push`方法将一个初始的`Vector<Student>`对象放入Digester的栈中。最后,我们调用了`parse`方法来...
Digester能够根据定义好的规则自动将XML文档转换成Java对象,非常适合用在配置文件读取、数据交换等场景。 #### 二、Digester的基本原理 1. **SAX事件驱动**:Digester内部使用SAX事件模型来解析XML文档。当解析器...
4. **配置Digester规则**:设置 Digester 规则以将XML解析为Java对象。这些规则通常在程序启动时初始化: ```java Digester digester = new Digester(); digester.setRulesValidation(true); // 启用规则验证 // ...
Apache Commons Digester是一个强大的工具,它允许开发者将XML文件解析为Java对象,通过匹配XML元素规则来调用对象的方法或设置属性。本篇文章将深入探讨如何使用Digester进行XML解析,并提供相关的学习资源。 ...
在Java开发中,处理XML文件是常见的任务,而Apache Commons Digester库提供了一种高效且便捷的方式来解析XML并将其映射到Java对象。本教程将深入探讨如何使用Digester来读取XML文件,帮助你更好地理解和应用这一强大...
在Java开发中,Struts框架提供了一个强大的工具——Digester,用于解析XML文件并自动创建、配置Java对象。本文将详细介绍如何使用Digester处理具有嵌套结构的XML文档,并通过一个具体的实例——"DigesterXmlTest"来...
5. 解析XML:最后,调用 Digester.parse() 方法解析XML文件, Digester 将自动根据规则创建和配置Java对象。 四、实例分析 以 test-mvn 文件为例,我们可以假设这是与Maven配置相关的XML文件。在 Commons Digester...
使用这些库,开发者可以创建一个XML配置文件,定义XML结构与Java对象之间的映射规则。例如,XML文件中的每个`<employee>`元素可能对应一个`Employee`类的实例,而`<employee>`的`<name>`和`<age>`子元素则分别映射到...
在Java开发中,处理XML数据时,Digester是一个强大的工具,尤其在构建配置文件或者进行数据输入时。 Digester的基本工作原理是通过规则(Rules)来定义XML元素和Java对象之间的关系。当XML解析器遇到匹配的元素时,...
使用Digester来处理XML配置文件是一种高效且灵活的方式,它能够显著减少代码量并提高系统的可维护性和扩展性。通过将XML文件与Java Bean之间的映射关系配置好,我们可以轻松地将XML文件中的配置数据转换成Java对象,...
- **配置文件解析**:Digester常用于处理XML配置文件,创建和初始化Java对象。 - **XML数据绑定**:在处理XML格式的数据交换时,可以方便地将XML转换为Java对象模型。 - **简化对象构建**:在对象层级复杂,需要...
Apache Commons Digester是一个用于将XML数据映射到Java对象的工具,主要应用于处理XML配置文件或数据文件。它通过定义一系列的模式和规则,能够自动地创建和填充Java对象的结构,大大简化了XML解析的过程。 ...