??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品免费在线,亚洲香蕉在线观看,jlzzjlzz亚洲jzjzjzhttp://www.tkk7.com/thisliy/category/39255.htmlzh-cnSat, 06 Jun 2009 18:56:22 GMTSat, 06 Jun 2009 18:56:22 GMT60XML的四U解析器原理及性能比较http://www.tkk7.com/thisliy/archive/2009/06/06/280335.htmlliyangliyangSat, 06 Jun 2009 04:47:00 GMThttp://www.tkk7.com/thisliy/archive/2009/06/06/280335.html1: DOM

DOM 是用与^台和语言无关的方式表C?XML 文档的官?W3C 标准。DOM 是以层次l构l织的节Ҏ信息片断的集合。这个层ơ结构允许开发h员在树中L特定信息。分析该l构通常需要加载整个文和构造层ơ结构,然后才能做Q? 工作。由于它是基于信息层ơ的Q因?DOM 被认为是Z树或Z对象的。DOM 以及q义的基于树的处理具有几个优炏V?br />
首先Q由于树在内存中是持久的Q因此可以修改它以便应用E序能对数据和结构作出更攏V它q可以在M时候在树中上下DQ而不是像 SAX 那样是一ơ性的处理。DOM 使用h也要单得多?br />
另一斚wQ对于特别大的文,解析和加载整个文档可能很慢且很耗资源,因此使用其他手段来处理这L数据会更好。这些基于事件的模型Q比?SAX?br />
2:SAX

参考用法:http://www.ibm.com/developerworks/cn/xml/x-javaxpathapi.html

q种处理的优炚w常类g媒体的优点。分析能够立卛_始,而不是等待所有的数据被处理。而且Q由于应用程序只是在d数据时检查数据,因此不需要将? 据存储在内存中。这对于大型文来说是个巨大的优炏V事实上Q应用程序甚至不必解析整个文档;它可以在某个条g得到满时停止解析。一般来_SAX q比它的替代?DOM 快许多?br />
3:选择 DOM q是选择 SAX Q?br />
对于需要自q写代码来处理 XML 文的开发h员来_选择 DOM q是 SAX 解析模型是一个非帔R要的设计决策?

DOM 采用建立树Şl构的方式访?XML 文Q?SAX 采用的事件模型?

DOM 解析器把 XML 文转化Z个包含其内容的树Qƈ可以Ҏq行遍历。用 DOM 解析模型的优Ҏ~程ҎQ开发h员只需要调用徏树的指oQ然后利用navigation APIs讉K所需的树节点来完成Q务。可以很Ҏ的添加和修改树中的元素。然而由于?DOM 解析器的时候需要处理整?XML 文档Q所以对性能和内存的要求比较高,其是遇到很大的 XML 文g的时候。由于它的遍历能力,DOM 解析器常用于 XML 文需要频J的改变的服务中?

SAX 解析器采用了Z事g的模型,它在解析 XML 文的时候可以触发一pd的事Ӟ当发现给定的tag的时候,它可以激zM个回调方法,告诉该方法制定的标签已经扑ֈ。SAX 对内存的要求通常会比较低Q因为它让开发h员自己来军_所要处理的tag。特别是当开发h员只需要处理文中所包含的部分数据时QSAX q种扩展能力得到了更好的体现。但?SAX 解析器的时候编码工作会比较困难Q而且很难同时讉K同一个文档中的多处不同数据?

  4:JDOM

JDOM的目的是成ؓ Java 特定文模型Q它化与 XML 的交互ƈ且比使用 DOM 实现更快。由于是W一?Java 特定模型QJDOM 一直得到大力推q和促进。正在考虑通过“Java 规范h JSR-102”它最l用?#8220;Java 标准扩展”。从 2000 q初已l开始了 JDOM 开发?br />
JDOM ?DOM 主要有两斚w不同。首先,JDOM 仅用具体类而不使用接口。这在某些方面简化了 APIQ但是也限制了灵zL。第二,API 大量使用?Collections c,化了那些已经熟悉q些cȝ Java 开发者的使用?br />
JDOM 文档声明其目的是“使用 20%Q或更少Q的_֊解决 80%Q或更多QJava/XML 问题”Q根据学习曲U假定ؓ 20%Q。JDOM 对于大多?Java/XML 应用E序来说当然是有用的Qƈ且大多数开发者发?API ?DOM Ҏ理解得多。JDOM q包括对E序行ؓ的相当广泛检查以防止用户做Q何在 XML 中无意义的事。然而,它仍需要您充分理解 XML 以便做一些超出基本的工作Q或者甚至理解某些情况下的错误)。这也许是比学习 DOM ?JDOM 接口都更有意义的工作?br />
JDOM 自n不包含解析器。它通常使用 SAX2 解析器来解析和验证输?XML 文Q尽它q可以将以前构造的 DOM 表示作ؓ输入Q。它包含一些{换器以将 JDOM 表示输出?SAX2 事g、DOM 模型?XML 文本文。JDOM 是在 Apache 许可证变体下发布的开放源码?br />
5: DOM4J

虽然 DOM4J 代表了完全独立的开发结果,但最初,它是 JDOM 的一U智能分支。它合ƈ了许多超出基?XML 文表示的功能,包括集成?XPath 支持、XML Schema 支持以及用于大文或化文的基于事件的处理。它q提供了构徏文表示的选项Q它通过 DOM4J API 和标?DOM 接口hq行讉K功能。从 2000 下半q开始,它就一直处于开发之中?br />
为支持所有这些功能,DOM4J 使用接口和抽象基本类Ҏ。DOM4J 大量使用?API 中的 Collections c,但是在许多情况下Q它q提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是Q虽?DOM4J 付出了更复杂?API 的代P但是它提供了?JDOM 大得多的灉|性?br />
在添加灵zL、XPath 集成和对大文档处理的目标ӞDOM4J 的目标与 JDOM 是一LQ针?Java 开发者的易用性和直观操作。它q致力于成ؓ?JDOM 更完整的解决ҎQ实现在本质上处理所? Java/XML 问题的目标。在完成该目标时Q它?JDOM 更少防止不正的应用E序行ؓ?br />
DOM4J 是一个非帔R怼U的Java XML APIQ具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的Y件。如今你可以看到来多?Java 软g都在使用 DOM4J 来读?XMLQ特别值得一提的是连 Sun ?JAXM 也在?DOM4J?br />
6:总述

JDOM ?DOM 在性能试时表C佻I在测?10M 文档时内存溢出。在文情况下q值得考虑使用 DOM ?JDOM。虽?JDOM 的开发者已l说明他们期望在正式发行版前专注性能问题Q但是从性能观点来看Q它实没有值得推荐之处。另外,DOM 仍是一个非常好的选择。DOM 实现q泛应用于多U编E语a。它q是许多其它?XML 相关的标准的基础Q因为它正式获得 W3C 推荐Q与Z非标准的 Java 模型相对Q,所以在某些cd的项目中可能也需要它Q如?javascript 中?DOMQ?br />
SAX表现较好Q这要依赖于它特定的解析方式。一?SAX 即到来的XML,但ƈ没有载入到内存(当然当XML被dӞ会有部分文档暂时隐藏在内存中Q?br />
无疑QDOM4J是最好的Q目前许多开源项目中大量采用 DOM4JQ例如大名鼎鼎的 Hibernate 也用 DOM4J 来读?XML 配置文g。如果不考虑可移植性,那就采用DOM4J吧!



liyang 2009-06-06 12:47 发表评论
]]>
XML及其作用、CSS、XSL、XSLT、DOM、SAX的概念,XML Schema、XPath http://www.tkk7.com/thisliy/archive/2009/04/28/267954.htmlliyangliyangTue, 28 Apr 2009 09:38:00 GMThttp://www.tkk7.com/thisliy/archive/2009/04/28/267954.html1、什么是XMLQ?/pre>
        Extensible Markup LanguageQ即可扩展性标记语a?/span>?br />
记是指计机所能理解的信息W号Q通过此种标记Q计机之间可以处理包含各种信息的文章等。如何定义这些标讎ͼ既可以选择国际通用的标记语aQ比?br />
HTMLQ也可以使用象XMLq样q关h士自由决定的标记语言Q这是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XML?br />
XSL和XPath{?/font>?/pre>
       理解Q汉语中的成语,汉语是前h?br />
义的XMLQ成语就是后人创造的新标讎ͼ只要明白q个标记Q其它hp使用Qƈ且他Z能理解。可惌知XML只定义了规则Q没有限制内容,q点可以通过
ҎHTML发现Q在HTML中所有的标记都是事先定义好的Q是不可以增加的。正如作者所aQ?span style="background-color: yellow;">XML是设计语a的语a?/span>
        XML文g也是一个文本文Ӟ重要的一点就是他可以做ؓ字符串进行传?/span>Q好呀Q?/span>
        HTMLQ即文本标记语a。它是用于创建可从一个^台移植到另一q_的超文本文档的一U简单标记语aQ经常用来创建Web面。HTML文g是带有格式标识符和超文本链接的内嵌代码的文本文g


2、优性及作用
        (1)异质pȝ中的信息互通(交换Q。异质系l再不用兛_Ҏ使用什么方式存储数据,什么操作系l,只需要用XML作ؓ中介格式卛_。XML可以很方便的现有的关系型数据库二维形式转换为XML格式?nbsp;
        (2)单易于保存,谁能惛_WORDq样的文在50q还能打开Q谁愿意自q所有文在每次WORD~辑软g升时更Cơ?Q还不定会少q少那的Q。XML文本文gQ简单呀。没q问题啦?


3、XML标签(tags)或简单语?/pre>
Q?Q声明,?lt;?xml version="1.0" encoding="gb2312"?>Q在此声明了xml版本P使用的字W集?/pre>
Q?Q元?elements )Q最高层的元素叫根元?Root Element)或叫文档元素(Document Element)Q每个XML必需且仅拥有一个要元素。元素可分ؓ单元素和l合元素Q拥有下U元素)?/pre>
Q?Q元素下可以包含属?Attributes)
 


4、什么是CSSQCascading Style SheetQ层叠式样式单?
通用标志语言描述l构Q而不是格式;而样式单是在不破坏文档l构的同Ӟ增加昄格式?/pre>


5、什么是XSLQ与CSS有什么关p?与XSLT有什么关p?
CSS的替代品XSL(Extensible Stylesheet Language)可扩展的样式单语aQ将XML通过XSL子集XSLT(XML转换)可按L格式重现输出Q比如:HTML)文档


6、什么是DOM?
文档对象模型(Document Object Model)Q它是由W3C标准化处理XML的API。ƈ且在Microsoft IE里面已经实现了此API?/pre>


7、什么是SAX?DOM与SAX有什么区?
        Simape API For XMLQXML单APIQ?/pre>
       
DOM与SAX的区?可以看看q个实例Q一个5Q0Q的Q݋Q位于Internet另一端,此时如果使用QOQ在最l获得数据之前,只有{待Q再{待Q?br /> 它将填充计算机内存及盘I间Q最l占据所有空_pȝ崩溃。;QIQ则不同Q它采用向前的模式,逐步获取数据,且可以随时终?


8、什么是XML Schema
The set of statements, expressed in data definition language, that completely describe the structure of a data base.
一l以数据定义语言来表辄语句?该语句集完整地描qC数据库的l构?/pre>


相当于数据表l构定义Q包括主键、自定义cd、缺省值等


9、什么是QPQTQ?/pre>
XML Path Lanager是一UQL标记Q用于查询和qoQ݋Q文中的文本?/pre>


liyang 2009-04-28 17:38 发表评论
]]>在Java中用DOM和XPathq行有效的XML处理http://www.tkk7.com/thisliy/archive/2009/04/28/267950.htmlliyangliyangTue, 28 Apr 2009 09:27:00 GMThttp://www.tkk7.com/thisliy/archive/2009/04/28/267950.html
文档对象模型(Document Object ModelQDOM)是公认的 W3C 标准Q它被用于与q_及语a无关?XML
文内容、结构和样式的动态访问和更新。它C文定义了一套标准的接口集,也ؓ讉K和操U|档定义了一套标准的Ҏ。DOM
得到q泛的支持和普及Qƈ且它以各U不同的语言实现Q包?Java、Perl、C、C++、VB、Tcl ?Python.
  正如我将在本文所演示的,当基于流的模?例如 SAX)不能满 XML 处理要求ӞDOM
是一个极佳的选择。不q的是,规范的几个方面,例如其语a无关性接口和“一切都是节?everything-is-a-node)”抽象概念的用,?br /> 光以用且易于生成脆弱代码。这在最q的几个大型 DOM
目的研I中其明显Q这些项目是p多开发h员过Mq所创徏的。下面讨Z常见的问题及其补救措施?/pre>
  文档对象模型
  DOM 规范被设计成可与M~程语言一起用。因此,它尝试用在所有语a中都可用的一l通用的、核心的功能部g。DOM
规范同样试保持其接口定义方面的无关性。这允?Java E序员在使用 Visual Basic ?Perl 时应用他们的 DOM
知识Q反之亦然?/pre>
  该规范同样将文档的每个部分看成由cd和值组成的节点。这为处理文档的所有方面提供了完美的概忉|框架。例如,下面?XML 片段
  the Italicized portion.
  是通过以下?DOM l构表示的:
  ?1QXML 文档?DOM 表示
  树的每个Document ?Element ?Text ?Attr 部分都是 DOM Node ?/pre>
  完美的抽象确实付Z代h。考虑 XML 片段Q?Value 。您或许会认为文本的值可以通过普通的 Java String
对象来表C,q且通过单的 getValue 调用可访问。实际上Q文本被当成 tagname 节点下的一个或多个?Node
。因此,Z获取文本|您需要遍?tagname 的子节点Q将每个值整理成一个字W串。这样做有充分的理由Q?tagname
可能包含其它嵌入?XML 元素Q在q种情况下获取其文本值没有多大意义。然而,在现实世界中Q我们看到由于缺乏便利的函数D频繁的编码错误占?br /> 80% 的情况,q样做的有意义?/pre>
  设计问题
  DOM 语言无关性的~点是通常在每个编E语a中用的一整套工作Ҏ和模式不能被使用。例如,不能使用熟悉?Java new
构造创建新?Element Q开发者必M用工厂构造器Ҏ?Node 的集合被表示?NodeList Q而不是通常?List ?br /> Iterator 对象。这些微的不便意味着不同d的编码实践和增多的代码行Qƈ且它们迫使程序员学习 DOM 的行事方法而不是用直觉的方法?/pre>
  DOM 使用“一切都是节?#8221;的抽象。这意味着几乎 XML 文的每个部分,例如Q?Document ?Element ?br />
Attr Q全都? extend ) Node 接口。这不仅是概念上完美Q而且q允许每?DOM
的不同实现通过标准接口使其自n的类可见Qƈ且没有通过中间包装cLD的性能损失?/pre>
  ׃存在的节点类型数量及其访问方法缺乏一致性,“一切都是节?#8221;的抽象׃一些意义。例如, insertData Ҏ被用来设|?br />
CharacterData 节点的|而通过使用 setValue Ҏ来设|?Attr
(属?节点的倹{由于对于不同的节点存在不同的接口,模型的一致性和完美性降低了Q而学习曲U增加了?/pre>
  JDOM
  JDOM 是 DOM API 适应 Java 的研I计划,从而提供了更自然和易用的接口。由于认识到语言无关 DOM 构造的手本质QJDOM 目标在于使用内嵌?Java 表示和对象,q且为常用Q务提供便利的函数?/pre>
  例如QJDOM 直接处理“一切都是节?#8221;?DOM 特定构造的使用(?NodeList )。JDOM 不同的节点cd(?br />
Document ?Element ?Attribute )定义Z同的 Java c,q意味着开发者可以?new
构造它们,避免频繁cd转换的需要。JDOM 字W串表示?Java String Qƈ且通过普通的 List ?Iterator
cL表示节点的集合?JDOM 用其本ncL?DOM cR?
  JDOM 为提供更完善的接口做了相当有益的工作。它已经被接受成?JSR(正式?Java Specification
Request)Q而且它将来很可能会被包含到核心的 Java q_中。但是,因其q不是核?Java API
的一部分Q一些h对于使用它还心存犹U。这儿还有关于与 Iterator ?Java 对象频繁创徏相关的性能问题的报告?请参?参考资??/pre>
  如果您对 JDOM 的接受性和可用性已l满Iq且如果您也没有?Java 代码和程序员转移到其它语a的直接需求,JDOM 是个值得探烦的好选择。JDOM q不能满x文探讨的目所在的公司需要,因而他们用了非常普遍?DOM。本文也是这样做的?/pre>
  常见~码问题
  几个大型 XML 目分析揭示了?DOM 中的一些常见问题。下面对其中的几个进行介l?/pre>
  代码臃肿
  在我们研I中查看的所有项目,本n都出C个突出的问题Q花费许多行代码行来做简单的事情。在某个CZ中,使用 16
行代码检查一个属性的倹{而同LdQ带有改q的健壮性和出错处理Q可以?3 行代码实现。DOM API
的低U本质、方法和~程模式的不正确应用以及~Z完整 API 的知识,都会致代码行数增加。下面的摘要介绍了关于这些问题的特定实例?/pre>
  遍历 DOM
  在我们探讨的代码中,最常见的Q务是遍历或搜?DOM?清单 1 演示了需要在文?config 节里查找一个称?#8220;header”节点的浓~版本代码:
  清单 1 中,从根开始通过索顶端元素遍历文,获取其第一个子节点( configNode )Qƈ且最l单独检?configNode 的子节点。不q的是,q种Ҏ不仅冗长Q而且q伴随着脆弱性和潜在的错误?/pre>
  例如Q第二行代码通过使用 getFirstChild Ҏ获取中间?config
节点。已l存在许多潜在的问题。根节点的第一个子节点实际上可能ƈ不是用户正在搜烦的节炏V由于盲目地跟随W一个子节点Q我忽视了标记的实际名称q且可能
搜烦不正的文部分。当?XML 文的根节点后包含空格或回RӞq种情况中发生一个频J的错误;根节点的W一个子节点实际?br /> Node.TEXT_NODE 节点Q而不是所希望的元素节炏V您可以自己试验一下,?参考资料下载样本代码ƈ且编?sample.xml 文g
??sample ?config 标记之间攄一个回车。代码立卛_常而终止。要正确览所希望的节点,需要检查每?root
的子节点Q直到找到非 Text 的节点,q且那个节点有我正在查找的名UCؓ止?/pre>
  清单 1 q忽视了文档l构可能与我们期望有所不同的可能性。例如,如果 root 没有M子节点, configNode 会被设|ؓ
null
Qƈ且示例的W三行将产生一个错误。因此,要正浏览文档,不仅要单独检查每个子节点以及核对相应的名Uͼ而且每步都得查以保每个Ҏ调用q回的是一
个有效倹{编写能够处理Q意输入的健壮、无错的代码Q不仅需要非常关注细节,而且需要编写很多行代码?/pre>
  最l,如果最初的开发者了解它的话Q清?1 中示例的所有功能应该可以通过利用?getElementsByTagName 函数的简单调用实现。这是下面要讨论的?/pre>
  索元素中的文本?/pre>
  在所分析的项目中QDOM 遍历以后Q第二项最常进行的d是检索在元素中包含的文本倹{考虑 XML 片段 The Value 。如果已l导航到 sometag 节点Q如何获取其文本? The Value )?一个直观的实现可能是:
  sometagElement.getData();
  正如您所猜测到的Q上面的代码q不会执行我们希望的动作。由于实际的文本被存储ؓ一个或多个子节点,因此不能?sometag 元素调用 getData 或类似的函数。更好的Ҏ可能是:
  sometag.getFirstChild().getData();
  W二U尝试的问题在于值实际上可能q不包含在第一个子节点??sometag
内可能会发现处理指o或其它嵌入的节点Q或是文本值包含在几个子节点而不是单单一个子节点中。考虑到空格经怽为文本节点表C,因此?br /> sometag.getFirstChild() 的调用可能仅让您得到标记和g间的回R。实际上Q您需要遍历所有子节点Q以核对
Node.TEXT_NODE cd的节点,q且整理它们的值直到有完整的gؓ止?/pre>
  注意QJDOM 已经利用便利的函?getText 为我们解决了q个问题。DOM U别 3 也将有一个用规划的 getTextContent Ҏ的解{。教训:可能用较高?API 是不会错的?/pre>
  getElementsByTagName
  DOM U别 2 接口包含一个查扄定名U的子节点的Ҏ。例如,调用Q?/pre>
  NodeList names = someElement.getElementsByTagName("name");
  返回一个包含在 someElement 节点中称?names 的节?NodeList 。这无疑比我所讨论的遍历方法更方便。这也是一l常见错误的原因?/pre>
  问题在于 getElementsByTagName
递归地遍历文,从而返回所有匹配的节点。假定您有一个包含客户信息、公怿息和产品信息的文。所有这三个中都可能含?name 标记。如果调?br /> getElementsByTagName
搜烦客户名称Q您的程序极有可能行为失常,除了索出客户名称Q还会检索出产品和公司名U。在文的子树上调用该函数可能会降低风险Q但׃ XML
的灵zL质,使确保您所操作的子树包含您期望的结构,且没有您正在搜烦的名U的虚假子节点就变得十分困难?/pre>
  DOM 的有效?/pre>
  考虑到由 DOM 设计强加的限Ӟ如何才能有效和高效的使用该规范呢?下面是?DOM 的几条基本原则和斚wQ以及工作更方便的函数库?/pre>
  基本原则
  如果您遵循几条基本原则,您?DOM 的经验将会显著提高:
  ?不要使用 DOM 遍历文?/pre>
  ?可能?XPath 来查找节Ҏ遍历文?/pre>
  ?使用较高U的函数库来更方便地使用 DOM?/pre>
  q些原则直接从对常见问题的研I中得到。正如上面所讨论的,DOM 遍历是出错的主要原因。但它也是最帔R要的功能之一。如何通过不?DOM 而遍历文呢?
  Path
  XPath 是寻址、搜索和匚w文的各个部分的语言。它?W3C 推荐标准(Recommendation)Qƈ且在大多数语a?br />
XML 包中实现。您?DOM 包可能直接支?XPath 或通过加蝲?add-on)支持。本文的h代码对于 XPath 支持使用
Xalan 包?/pre>
  XPath 使用路径标记法来指定和匹配文的各个部分Q该标记法与文gpȝ?URL 中用的cM。例如,XPath: /x/y/z 搜烦文档的根节点 x Q其下存在节?y Q其下存在节?z 。该语句q回与指定\径结构匹配的所有节炏V?/pre>
  更ؓ复杂的匹配可能同时在包含文的结构方面以及在节点及其属性的g。语?/x/y/* q回父节点ؓ x ?y 节点下的M节点?br />
/x/y[@name=''a''] 匚w所有父节点?x ?y 节点Q其属性称?name Q属性gؓ a 。请注意QXPath
处理{选空格文本节点以获得实际的元素节??它只q回元素节点?/pre>
  详细探讨 XPath 及其用法出了本文的范围。请参阅 参考资料获得一些优U教程的链接。花Ҏ间学?XPathQ您会更方便的处理 XML 文?/pre>
  函数?/pre>
  当研I?DOM
目时o我们惊奇的一个发玎ͼ是存在的拯和粘贴代码的数量。ؓ什么有l验的开发者没有用良好的~程习惯Q却使用拯和粘贴方法而不是创建助?br /> (helper)库呢?我们怿q是׃ DOM
的复杂性加׃学习的难度,q开发者要理解能完成他们所需要的W一D代码。开发生构成助手库规范的函数所需的专门技术需要花费大量的旉?/pre>
  要节省一些走弯\的时_q里是一些将使您自己的库可以q{h的基本助手函数?/pre>
  findValue
  使用 XML
文Ӟ最常执行的操作是查扄定节点的倹{正如上所讨论的,在遍历文以查找期望的值和索节点的g都出现难度。可以通过使用 XPath
来简化遍历,而值的索可以一ơ编码然后重用。在两个较低U函数的帮助下,我们实现?getValue 函数Q这两个低函数是:?Xalan
包提供的 XPathAPI.selectSingleNode (用来查找和返回与l定?XPath 表达式匹配的W一个节?;以及
getTextContents Q它非递归地返回包含在节点中的q箋文本倹{请注意QJDOM ?getText 函数Q或出现在 DOM U别
3 中规划的 getTextContent ҎQ都可用来代?getTextContents ?清单
2包含了一个简化的清单;您可以通过下蝲h代码来访问所有函?请参?参考资??/pre>
  通过同时传入要开始搜索的节点和指定要搜烦节点?XPath 语句来调?findValue 。函数查扄一个与l定 XPath 匚w的节点,q且抽取其文本倹{?/pre>
  setValue
  另一常用的操作是将节点的D|ؓ希望的|?清单 3 所C。该函数获取一个v始节点和一?XPath 语句 ?p
findValue ?br /> 以及一个用来设|匹配的节点值的字符丌Ӏ它查找希望的节点,除去其所有子节点(因此除去包含在其中的M文本和其它元?Qƈ其文本内容讄Z入的
(passed-in)字符丌Ӏ?/pre>
  appendNode
  虽然某些E序查找和修改包含在 XML 文中的|而另一些则通过d和除去节Ҏ修改文档本n的结构。这个助手函数简化了文节点的添加,?清单 4所C?/pre>
  该函数的参数有:要将新节Ҏ加到其下的节点,要添加的新节点名Uͼ以及指定要将节点d到其下位|的 XPath 语句(也就是,新节点的父节点应当是哪个)。新节点被添加到文的指定位|?/pre>
  最l分?/pre>
  DOM 的语a无关性设计ؓ其带来了非常q泛的可应用性ƈ使其在大量的pȝ和^C得以实现。这样做的代hQ DOM 比ؓ每个语言专门设计?API 更困难且更缺乏直观性?/pre>
  DOM 奠定了一个非常有效的基础Q遵循一些简单的原则可其上构徏易于使用的系l。凝l了一大群用户智慧和经验的 DOM
未来版本正在设计之中Q而且极有可能里讨论的问题提供解决Ҏ。如 JDOM q样的项目正在修改该 API 以获得更自然 Java
感觉Q而且如本文中所q的技术可以帮助您?XML 的操U|方便、更zƈ且不易出错。利用这些项目且遵@q些用法模式以允?DOM 成ؓZ
XML 目的出色^台?/pre>


liyang 2009-04-28 17:27 发表评论
]]>
վ֩ģ壺 Ƶ߹ۿ| պĻۺ| ѰvƷƵַ| ޾Ʒav| ˳߹ۿվ| AV뾫Ʒ| һëƬѲƵ| ƷV޾ƷVպƷ| jzzjzzѹۿƬ| ۺ޹һҳ | ŷ޿l| õƵ| ݺۺۺɫ| av߹ۿһ| պƷƵ߹ۿ| Ʒ޾߹ۿ| sss߹ۿѸ| ҹƵ| ϣӰԺѹۿƵ| ޹AVһ | ˳ɵӰվ| aëƬվ | ˳ɵӰվɫwww| ҹػaëƬѲ| ҹ޲| ձһƷƵ | vaĻ| ŮƵۿӰԺ쿴 | ˳77777ɫ| Ƶ| Av뾫Ʒһ| ޾Ʒa vС˵| 99reƵѹۿ| AVվ| ޾Ʒþǧն| һëƬ߲Ƶ| ŮƵһ| ޾ɫ߲| 黨ýmvѹۿ| 㽶žžþþƷ| ȫӰѹۿȫ|