public interface LSParserFilter
LSParserFilter为应用程序提供了在解析时正在构造时检查节点的能力。
当每个节点被检查时,它可以被修改或去除,或者整个解析可以被提前终止。
在解析器调用任何过滤器方法时,所有者Document和DOMImplementation对象都存在并且可以访问。 文档元素从不传递到LSParserFilter方法,即不可能过滤出文档元素。 Document , DocumentType , Notation , Entity和Attr节点不会传递至acceptNode在过滤器上的方法。 如果参数“ entities ”设置为false ,则EntityReference节点的子节点将传递给过滤器。 请注意,如参数“ entities ”所述,未扩展的实体引用节点不会被丢弃,并且始终传递给过滤器。
分析文档时的所有有效性检查都会发生在源文档上,因为它在输入流中显示,而不是内置在内存中的DOM文档上。 使用过滤器,内存中的文档可能是流上文档的一个子集,其有效性可能受到过滤的影响。
当元素传递到过滤器方法时,所有默认属性必须存在于元素上。 所有其他默认内容必须传递给过滤器方法。
DOM应用程序不能在过滤器中引发异常。 从过滤器抛出异常的效果是依赖于DOM实现的。
另见Document Object Model (DOM) Level 3 Load and Save Specification 。
| Modifier and Type | Field and Description |
|---|---|
static short |
FILTER_ACCEPT
接受节点。
|
static short |
FILTER_INTERRUPT
中断文件的正常处理。
|
static short |
FILTER_REJECT
拒绝节点及其子节点。
|
static short |
FILTER_SKIP
跳过这个单个节点。
|
| Modifier and Type | Method and Description |
|---|---|
short |
acceptNode(Node nodeArg)
解析器在完成每个节点的解析时将调用此方法。
|
int |
getWhatToShow()
告诉
LSParser方法
LSParserFilter.acceptNode显示什么类型的节点。
|
short |
startElement(Element elementArg)
每次使用后解析器将调用此方法
Element开始标签被扫描,但在其余前
Element进行处理。
|
static final short FILTER_ACCEPT
static final short FILTER_REJECT
static final short FILTER_SKIP
static final short FILTER_INTERRUPT
short startElement(Element elementArg)
Element开始标签被扫描,但在其余前Element进行处理。
意图是允许元素,包括任何孩子,被有效地跳过。
请注意,只有元素节点被传递给startElement函数。
startElement进行过滤的元素节点将包含所有Element的属性,但不包括子节点。
元素可能尚未在正在构造的文档中就位(可能没有父节点)。
startElement过滤器函数可以访问或更改元素的属性。
更改命名空间声明对解析器的命名空间解析没有影响。
elementArg - 新遇到的元素。
在调用此方法时,元素不完整 - 它将具有其属性,但不包含子项。
FILTER_ACCEPT如果Element应该包含在正在构建的DOM文档中。 FILTER_REJECT如果Element及其所有的孩子都应该被拒绝。 FILTER_SKIP如果Element应该被跳过。 所有的孩子被插入代替跳过的Element节点。 FILTER_INTERRUPT如果过滤器想要停止文档的处理。 中断文档的处理不再保证生成的DOM树是XML格式正确的。 Element被拒绝。 short acceptNode(Node nodeArg)
nodeArg - 新构造的元素。
在调用此方法时,该元素是完整的 - 它具有所有子项(及其子代,递归)和属性,并作为子节点附加到其父项。
FILTER_ACCEPT如果这Node应该包含在正在构建的DOM文档中。 FILTER_REJECT如果Node及其所有的孩子都应该被拒绝。 FILTER_SKIP如果Node应该被跳过, Node应该被Node的所有子Node 。 FILTER_INTERRUPT如果过滤器想要停止文档的处理。 中断文档的处理不再保证生成的DOM树是XML格式正确的。 Node被接受,将是最后一个完全解析的节点。 int getWhatToShow()
LSParser方法LSParserFilter.acceptNode显示什么类型的节点。
如果节点没有显示给使用此属性的过滤器,则会自动将其包含在正在构建的DOM文档中。
有关NodeFilter的定义,请参见NodeFilter。
常量SHOW_ATTRIBUTE , SHOW_DOCUMENT , SHOW_DOCUMENT_TYPE , SHOW_NOTATION , SHOW_ENTITY和SHOW_DOCUMENT_FRAGMENT是没有意义在这里。
那些节点永远不会传递给LSParserFilter.acceptNode 。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.