Com ibm xml parsers nonvalidatingdomparser adult singles dating eddyville nebraska


14-Dec-2017 03:47

I'm really desperate, this seems like a simple thing to me, but I can't find anything usefull in the API :( Here's my code: ------------------------------------------- import lotus.domino.*; import sax.

Non Validating DOMParser; import org.w3*; import *; public class Java Agent extends Agent Base // end Java Agent --------------------------------------------- Thanks !

Man sollte DOM-Parser also nur dort einsetzen, wo sie auch wirklich Sinn machen.

Trotz dieser einleitenden Bemerkungen, wird mein erstes Beispiel den DOM-Parser verwenden (äh…hattet ihr in diesem Kapitel wohl nicht erwartet? Da ich jedoch einfache und überschaubare Beispiele bringen möchte, war das leider nötig. Es soll ein Dokument in einen DOM-Tree parsen, und dann das ganze Dokument auf dem Bildschirm ausgeben. Dieses stammt wie man sieht nicht von IBM sondern vom W3C, und wird in allen mir bekannten Parsern verwendet.

来源: Works/education/xml/xmljava/tutorial/xmljava-1-1.html第一章 入门介绍关于本教程 在本教程中,我们将讨论如何使用一个 XML 解析器来: 处理一个 XML 文档 创建一个 XML 文档 操作一个 XML 文档 我们也将讨论一些有用而不为众人所知的 XML 解析器特性。 最重要的,我们所讨论的每个工具都可从 IBM 的 alpha Works 站点 ( 和其它网站免费获得。 未讨论的:有些重要的编程概念并未在此介绍:1 使用可视工具来构建 XML 应用 2 将一个 XML 文档从一种形式转换到另一种 3 为最终用户或其他进程创建接口,及对后端存储数据的接口当您构建一个 XML 应用时,所有这些概念都是重要的。我们正在编制新的教程来讨论它们,因此请常光顾我们的网址!XML 应用架构 一个 XML 应用通常是基于一个 XML 解析器而构建的。它为其用户提供了一个接口,以及对后端存储数据的一个接口。 本教程关注于编写使用 XML 解析器来操作 XML 文档的 Java 代码。如下边图片所示,本教程关注于中间那块。 第二章 解析器基础基础一个 XML 解析器是一段可以读入一个文档并分析其结构的代码。在本章节,我们将讨论如何使用一个 XML 解析器来读入一个 XML 文档。我们也将讨论不同类型的解析器以及您在何时使用它们。 本教程后面的章节将讨论您从解析器可以获得什么以及如何使用这些结果。 如何使用一个解析器 我们将在稍后的章节详细讨论它,但通常而言,您如下使用它:1 创建一个解析器对象 2 将您的 XML 文档传递给解析器 3 处理结果构建一个 XML 应用显然远远超出这些,但通常一个 XML 的应用将包含这些流程。解析器种类 有不同的方法来划分解析器种类:验证或非验证解析器 支持 Document Object Model (DOM) 的解析器 支持 Simple API for XML (SAX) 的解析器 用特定语言编写的解析器 (Java, C , Perl 等)验证或非验证解析器 如我们在第一个教程中所提及的,XML 文档如果使用一个 DTD 并符合 DTD 中的规则将被称为有效文档(valid document)。符合基本标记规则的 XML 文档被称为格式正确文档(well-formed document)。 XML 规范要求所有的解析器当其发现一个文档不是格式正确时要报错。验证(Validation)则是另一个问题了。验证解析器(Validating parser)在解析 XML 文档同时进行验证。非验证解析器(Non-validating parser) 忽略所有的验证错误。换而言之,如果一个 XML 文档是格式正确的时,一个非验证解析器并不关注文档是否符合其对应 DTD 所指定的规则(如果有的话)。为何使用非验证解析器? 速度和效率。要一个 XML 解析器处理 DTD 并确保每个 XML 的元素符合在 DTD 中的规则需要相当大的开销。如果您确定一个 XML 文档是有效的(可能来自一个数据源),那就没有必要在次验证它了。同样,有时您所需要的只是从一个文档中找出 XML 的标记。一旦您有了这些标记,您可以将数据从中提取出然后加以处理。如果这就是您所需要的,一个非验证解析器就是正确的选择。Document Object Model (DOM) 文档对象模型(Document Object Model)是 World Wide Web Consortium(W3C) 的正式推荐。它定义了一个接口使得程序可以存取和更新 XML 文档的风格、结构和内容。支持 DOM 的 XML 解析器实现该接口。该规范的第一版,DOM Level 1,可从 获得, 如果您愿意阅读规范的话。DOM 解析器可提供什么当您用一个 DOM 解析器来解析一个 XML 文档时,您将获得一个包含文档中所有元素的树结构。DOM 提供了不同的功能来检查文档的内容和结构。关于标准 现在我们即将讨论开发 XML 应用了,我们也要关注 XML 的标准。正式而言,XML 是 MIT(麻省理工) 的商标和 World Wide Web Consortium (W3C)组织的产品。 XML 规范,W3C 的正式推荐,可从 下载。W3C 站点包含了 XML、DOM 以及一大堆 XML 相关标准的规范。Simple API for XML (SAX) SAX API 是另一种处理 XML 文档内容的方法。一个既成事实的标准,它由 David Megginson 和 XML-Dev 邮件列表其它成员所开发。要查看完整的 SAX 标准,参见 XML-Dev 邮件列表,发送邮件到 [email protected] 其中包含: subscribe xml-dev。SAX 解析器可提供什么 当您使用 SAX 解析器来解析 XML 文档时,解析器在文档的不同处将产生事件。由您来决定对每个事件如何处理。SAX 解析器会在以下情况下产生事件:在文档开始和结束时,在一个元素开始和结束时,或者它在一个元素中找到字符时,以及其它若干点。您可编写 Java 代码来处理每个事件,以及如何处理从解析器获得的信息。何时使用 SAX?何时使用 DOM? 我们将在稍后的章节详细讨论这个问题,但通常而言,您在下列时候应该使用一个 DOM 解析器:您需要十分了解文档的结构 您需要操作文档中的某些部分(例如,您可能想对某些元素排序) 您需要不止一次使用文档中的信息当您只需要从一个 XML 文档中提取若干元素时,可使用 SAX 解析器。SAX 解析器在您没有大多数内存时、或者如果您只需要使用文档中的信息一次(而不是解析文档一次,而后要反复使用它)。不同语言的 XML 解析器 在 Web 上使用的大多数语言都有其对应的 XML 解析器和库,包括 Java、C 、Perl 和 Python。下一页介绍了 IBM 或其它公司提供的解析器的链接。本教程中绝大多数的示例是使用 IBM 的 XML4J 解析器。我们所讨论的所有代码使用标准的接口。在本教程的最后章节,我们将向您展现编写可使用不同解析器的代码是如何简单。Java IBM 的解析器,XML4J,可从 com/tech/xml4j 获得。 James Clark 的解析器,XP,可从 获得。 Sun 的 XML 解析器可从 sun.com/developer/products/xml/ (您必需成为 Java Developer Connection 的会员)下载。 Data Channel 的 XJParser 可从 xdev.datachannel.com/downloads/xjparser/ 获得。C IBM 的 XML4C 解析器可从 com/tech/xml4c 获得。 James Clark 的 C 解析器,expat,可从 Perl 语言的 XML 解析器。要获得更多信息,参见 Python 语言的 XML 解析器,参见 任何 XML 应用的核心是一个 XML 解析器。要处理一个 XML 文档,您的应用将创建一个 parser 对象,将一个 XML document 传递给它,然后处理从 parser 对象返回的结果。我们讨论了不同类型的 XML 解析器,以及您为何选取其一。我们用不同方式来对解析器分类:验证或非验证解析器 支持 Document Object Model (DOM) 的解析器 支持 Simple API for XML (SAX) 的解析器 用特定语言编写的解析器 (Java, C , Perl 等)在我们的下一章节,我们将探讨 DOM 解析器和如何使用它们。第三章 DOM (Document Object Model)Dom, dom, dom, dom, dom, Doobie, doobie, Dom, dom, dom, dom, dom... 处理命令行 处理命令行的代码在左面显示。我们将检查用户是否在命令行上输入参数。如果没有,我们打印使用方法并推出;否则,我们假定命令行上第一个参数( Java 语言中的 argv[0] ) 是文档名。我们忽略用户可能输入的其它参数。我们使用命令行参数来简化我们的示例。在大多数情况下,一个 XML 应用可能使用 servlet、Java Bean 和其它类型的组件一起使用;而用命令行参数并不是一个问题。public static void main(String argv[]) 创建一个 dom One 对象 在我们的示例代码中,我们创建一个单独的类 dom One。要解析文件和打印结果,我们创建一个 dom One 类的实例,然后让我们刚创建的 dom One 对象来解析和打印 XML 文档。我们为何这样处理?由于我们想要使用一个递归方法来遍历 DOM 树并打印出结果。我们无法用一个如 main 的静态方法来处理,因此我们创建一个单独的类来处理它。public static void main(String argv[]) 创建一个 Parser 对象 现在我们已经让 dom One 的实例来解析和处理我们的 XML 文档,它的第一个处理是创建一个新的 Parser 对象。在此例中,我们将使用一个 DOMParser 对象,一个实现 DOM 接口的 Java 类。在 XML4J 包中还有其它 parser 对象,例如 SAXParser、Validating SAXParser 和 Non Validating DOMParser。 注意我们将这段代码放在一个 try 模块中。parser 在某些情况下将抛出异常(exception),包括一个无效的 URI、找不到一个 DTD 或者一个 XML 文档不是有效的或格式错误。要很好地处理它,我们要捕获异常(exception)。try 解析 XML 文档 解析文档只是简单的一行代码。当解析结束时,我们获得解析器生成的 Document 对象。如果 Document 对象不是 null (如果解析过程出错它将是 null),我们将其传递给 print DOMTree 方法。try 处理 DOM 树 现在解析已经完成,我们将遍历 DOM 树。注意这段代码是递归的。对每个节点,我们处理其本身,然后我们对每个节点的子女递归地调用 print DOMTree 方法。递归调用如左所示。要记住当有些 XML 文档非常大时,它们反而不会有太多层标记。以一个上海市的电话簿为例,可能有几百万条记录,但其标记可能不会超过几层。考虑到这个原因,递归算法的栈溢出不是一个问题。public void print DOMTree(Node node) { int node Type = Node Type(); switch (node Type) { case DOCUMENT_NODE: print DOMTree(((Document)node).

DOM 是一个操作文档结构的通用接口。它设计的一个目标是为一个 DOM 兼容解析器所编写的 Java 代码应该可以使用其它任意 DOM 兼容的解析器而不需要修改代码。(我们稍后将展示这个。)正如我们前面所提的,一个 DOM 解析器将以树形式返回您整个文档的结构。示例代码在我们继续以前,请您下载我们的示例 XML 应用程序。解开此文件 xmljava.zip,就可以了!(blueski:***或者查看本教程附录)DOM 接口DOM 定义了多个 Java 接口。下列是常用的:Node: DOM 基本的数据类型。 Element: 您将最主要处理的对象是 Element。 Attr: 代表一个元素的属性。 Text: 一个 Element 或 Attr 的实际内容。 Document: 代表整个 XML 文档。一个 Document 对象通常也被称为一棵 DOM 树。常用的 DOM 方法当您使用 DOM 时,下列是您将常会使用的方法:Document Element() 返回文档的根(root)元素。 First Child() and Last Child() 返回给定 Node 的第一个子女。 Next Sibling() and Previous Sibling() 它将删除 DOM 树中一切内容,格式化您的硬盘,然后给您地址簿中每个人发送一个谩骂的邮件。(不是真的啦。这些方法返回下一个或前一个给定 Node 的同胞。) Attribute(attr Name) 对给定的 Node,返回给定名称的属性。例如,如果您要获得名为 id 属性 的对象,可调用 get Attribute("id")。 我们的第一个 DOM 应用! 介绍了很多概念,让我们继续吧。我们的第一个应用简单地读入一个 XML 文档并将其内容输出到标准输出。在一个命令行窗口,运行下面的命令:java dom One sonnet.xml这个命令将载入我们的应用然后让它解析 文件。如果一切运行正常,您将看到 XML 文档的内容被输出到标准输出。My mistress? dom One 剖析 dom One 的源码是非常直了的。我们创建一个新的类 dom One;它有两个方法,parse And Print 以及 print DOMTree。 在 main 方法中,我们处理命令行,创建一个 dom One 对象,然后将文件名传递给 dom One 对象。dom One 对象创建一个 parser 对象,解析文档,然后通过 print DOMTree 方法处理 DOM 树 (即 Document 对象)。我们将详细研究每个步骤。public class dom One { public void parse And Print(String uri) ...

By the way you could use xerces(originally XML4J of IBM, IBM had donated this to APACHE.) from apache. So I guess changing it is worth the trouble Thanks!Path Resolver.(Path Resolver.java:56) at com.enext.security.helper. Path Instance(Path Resolver.java:139) at com.enext. Base Servlet.process(Base Servlet.java:58) at com.enext.