java.applet

java.awt

java.awt.color

java.awt.datatransfer

java.awt.dnd

java.awt.event

java.awt.font

java.awt.geom

java.awt.im

java.awt.im.spi

java.awt.image

java.awt.image.renderable

java.awt.print

java.beans

java.beans.beancontext

java.io

java.lang

java.lang.annotation

java.lang.instrument

java.lang.management

java.lang.ref

java.lang.reflect

java.math

java.net

java.nio

java.nio.channels

java.nio.channels.spi

java.nio.charset

java.nio.charset.spi

java.rmi

java.rmi.activation

java.rmi.dgc

java.rmi.registry

java.rmi.server

java.security

java.security.acl

java.security.cert

java.security.interfaces

java.security.spec

java.sql

java.text

java.util

java.util.concurrent

java.util.concurrent.atomic

java.util.concurrent.locks

java.util.jar

java.util.logging

java.util.prefs

java.util.regex

java.util.zip

javax.accessibility

javax.activity

javax.crypto

javax.crypto.interfaces

javax.crypto.spec

javax.imageio

javax.imageio.event

javax.imageio.metadata

javax.imageio.plugins.bmp

javax.imageio.plugins.jpeg

javax.imageio.spi

javax.imageio.stream

javax.management

javax.management.loading

javax.management.modelmbean

javax.management.monitor

javax.management.openmbean

javax.management.relation

javax.management.remote

javax.management.remote.rmi

javax.management.timer

javax.naming

javax.naming.directory

javax.naming.event

javax.naming.ldap

javax.naming.spi

javax.net

javax.net.ssl

javax.print

javax.print.attribute

javax.print.attribute.standard

javax.print.event

javax.rmi

javax.rmi.CORBA

javax.rmi.ssl

javax.security.auth

javax.security.auth.callback

javax.security.auth.kerberos

javax.security.auth.login

javax.security.auth.spi

javax.security.auth.x500

javax.security.cert

javax.security.sasl

javax.sound.midi

javax.sound.midi.spi

javax.sound.sampled

javax.sound.sampled.spi

javax.sql

javax.sql.rowset

javax.sql.rowset.serial

javax.sql.rowset.spi

javax.swing

javax.swing.border

javax.swing.colorchooser

javax.swing.event

javax.swing.filechooser

javax.swing.plaf

javax.swing.plaf.basic

javax.swing.plaf.metal

javax.swing.plaf.multi

javax.swing.plaf.synth

javax.swing.table

javax.swing.text

javax.swing.text

javax.swing.text.parser

javax.swing.text.rtf

javax.swing.tree

javax.swing.undo

javax.transaction

javax.transaction.xa

javax.xml

javax.xml.datatype

javax.xml.namespace

javax.xml.parsers

javax.xml.transform

javax.xml.transform.dom

javax.xml.transform.sax

javax.xml.transform.stream

javax.xml.validation

javax.xml.xpath

org.ietf.jgss

org.omg.CORBA

org.omg.CORBA_2_3

org.omg.CORBA_2_3.portable

org.omg.CORBA.DynAnyPackage

org.omg.CORBA.ORBPackage

org.omg.CORBA.portable

org.omg.CORBA.TypeCodePackage

org.omg.CosNaming

org.omg.CosNaming.NamingContextExtPackage

org.omg.CosNaming.NamingContextPackage

org.omg.Dynamic

org.omg.DynamicAny

org.omg.DynamicAny.DynAnyFactoryPackage

org.omg.DynamicAny.DynAnyPackage

org.omg.IOP

org.omg.IOP.CodecFactoryPackage

org.omg.IOP.CodecPackage

org.omg.Messaging

org.omg.PortableInterceptor

org.omg.PortableInterceptor.ORBInitInfoPackage

org.omg.PortableServer

org.omg.PortableServer.CurrentPackage

org.omg.PortableServer.POAManagerPackage

org.omg.PortableServer.POAPackage

org.omg.PortableServer.portable

org.omg.PortableServer.ServantLocatorPackage

org.omg.SendingContext

org.omg.stub.java.rmi

org.w3c.dom

org.w3c.dom.bootstrap

org.w3c.dom.events

org.w3c.dom.ls

org.xml.sax

org.xml.sax.ext

org.xml.sax.helpers

allclasses-frame

allclasses-noframe

constant-values

deprecated-list

help-doc

JavaTM 2 Platform
Standard Ed. 5.0

org.w3c.dom.ls
接口 LSParserFilter


public interface LSParserFilter

LSParserFilter 为应用程序提供了在解析期间构建节点时检查这些节点的能力。由于要检查每个节点,所以可能会修改或删除这些节点,或者会提前终止整个解析。

此时解析器会调用任何过滤器器方法,所有者 Document 和 DOMImplementation 对象存在并可访问。从不会将文档元素传递给 LSParserFilter 方法,即不可能过滤出文档元素。DocumentDocumentTypeNotationEntityAttr 节点从不会被传递给过滤器上的 acceptNode 方法。如果参数 "entities" 设置为 false,则把 EntityReference 节点的子节点传递给过滤器。注意,如参数 "entities" 所描述的那样,从不会丢弃未展开的实体引用节点,并且始终将它传递给过滤器。

解析文档期间,所有的有效性检查都像它出现在输入流上那样出现在源文档上,而不像在内存中构建它那样出现在 DOM 文档上。使用过滤器,内存中的文档可以是流上文档的子集,并且其有效性可能已受到了过滤的影响。

当将元素传递给过滤器方法时,所有的默认属性必须出现在这些元素上。所有其他默认内容也必须传递给过滤器方法。

DOM 应用程序不能引发过滤器中的异常。从过滤器中抛出异常产生的效果具有 DOM 实现依赖性。

另请参见《Document Object Model (DOM) Level 3 Load and Save Specification》。


字段摘要
static short FILTER_ACCEPT
          接受节点。
static short FILTER_INTERRUPT
          中断对文档的常规处理。
static short FILTER_REJECT
          拒绝节点及其子节点。
static short FILTER_SKIP
          跳过此单个节点。
 
方法摘要
 short acceptNode(Node nodeArg)
          此方法将由解析器在完成对每个节点的解析后调用。
 int getWhatToShow()
          告知 LSParser 将向方法 LSParserFilter.acceptNode 显示什么类型的节点。
 short startElement(Element elementArg)
          解析器将在扫描完每个 Element 启动标记后,处理其余的 Element 之前调用此方法。
 

字段详细信息

FILTER_ACCEPT

static final short FILTER_ACCEPT
接受节点。

另请参见:
常量字段值

FILTER_REJECT

static final short FILTER_REJECT
拒绝节点及其子节点。

另请参见:
常量字段值

FILTER_SKIP

static final short FILTER_SKIP
跳过此单个节点。仍需考虑此节点的子节点。

另请参见:
常量字段值

FILTER_INTERRUPT

static final short FILTER_INTERRUPT
中断对文档的常规处理。

另请参见:
常量字段值
方法详细信息

startElement

short startElement(Element elementArg)
解析器将在扫描完每个 Element 启动标记后,处理其余的 Element 之前调用此方法。其目的是允许有效跳过包括任何子元素在内的元素。注意,仅将元素节点传递给 startElement 函数。
传递给 startElement 以便过滤的元素节点包括所有的 Element 属性,但不包括任何子节点。Element 还不能放构建的文档中适当的位置(它不能有父节点)。
startElement 过滤器函数可以访问或更改 Element 的属性。更改 Namespace 声明不会对解析器的名称空间解析产生任何影响。
为了提高效率,如果节点被接受,传递给过滤器的 Element 节点不能与实际放置于树中的节点是同一个节点。并且在文档中读取和过滤文档过程中,可以重新使用实际的节点(节点对象标识)。

参数:
elementArg - 新遇到的元素。此时将调用此方法,元素不完整 - 它将有其自己的属性,但没有子项。
返回:
  • FILTER_ACCEPT 如果 Element 必须包括在要构建的 DOM 文档中。
  • FILTER_REJECT 如果 Element 及其所有的子项必须拒绝。
  • FILTER_SKIP 如果 Element 必须跳过。将把它所有的子项插入到跳过的 Element 节点位置。
  • FILTER_INTERRUPT 如果过滤器想停止对文档的处理。中断对文档的处理将不再保证得到的 DOM 树是格式良好的 XML。拒绝 Element
返回任何其他值都会导致未指定的行为。

acceptNode

short acceptNode(Node nodeArg)
此方法将由解析器在完成对每个节点的解析后调用。节点及其所有后代将存在并且是完整的。父节点也将存在,尽管它可能不是完整的,即它可能有尚未解析的附加子节点。从不将属性节点传递给此函数。
在此方法中,新节点可以随意修改 - 可以添加或移除子节点,修改文本节点等。此节点外面文档的其余部分的状态是没有定义的,并且尝试导航到或修改文档的其他任何部分产生的影响是未定义的。
为了验证解析器,将在过滤器进行任何修改之前检查原始文档。在过滤器执行的任何文档修改上都不进行有效性检查。
如果此新节点被拒绝,则解析器可能会重用该新节点及其所有的后代。

参数:
nodeArg - 新构建的元素。此时调用此方法,该元素是完整的 - 它具有其所有的子节点(和它们的字节点,以此类推)和属性,并且作为子节点连接到它的父节点。
返回:
  • FILTER_ACCEPT 如果此 Node 必须包括在要构建的 DOM 文档中。
  • FILTER_REJECT 如果 Node 及其所有的子节点必须被拒绝。
  • FILTER_SKIP 如果 Node 必须跳过并且 Node 必须由 Node 的所有子节点代替。
  • FILTER_INTERRUPT 如果过滤器想停止对文档的处理。中止对文档的处理将不再保证得到的 DOM 树是格式良好的 XML。Node 被接受,并且将成为最后一个得到完整解析的节点。

getWhatToShow

int getWhatToShow()
告知 LSParser 将向方法 LSParserFilter.acceptNode 显示什么类型的节点。如果没有将某个节点显示给使用此属性的过滤器,则该节点将自动包含在要构建的 DOM 文档中。有关对常量的定义请参见 NodeFilter。常量 SHOW_ATTRIBUTESHOW_DOCUMENTSHOW_DOCUMENT_TYPESHOW_NOTATIONSHOW_ENTITYSHOW_DOCUMENT_FRAGMENT 在此无意义。从不会将这些节点传递给 LSParserFilter.acceptNode
此处使用的常量在 [DOM Level 2 Traversal and Range] 中定义。


JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策