Class SimpleSaxHandler
java.lang.Object
cloud.opencode.base.xml.sax.SimpleSaxHandler
- All Implemented Interfaces:
SaxHandler
Simple SAX Handler - Lambda-friendly SAX handler
简化 SAX 处理器 - Lambda 友好的 SAX 处理器
This class provides a fluent API for registering callbacks for SAX events.
此类提供流式 API,用于注册 SAX 事件的回调。
Usage Examples | 使用示例:
SimpleSaxHandler handler = SimpleSaxHandler.create()
.onStart("user", (name, attrs) -> {
System.out.println("User: " + attrs.get("id"));
})
.onText("name", text -> {
System.out.println("Name: " + text);
})
.onEnd("user", name -> {
System.out.println("End user");
});
SaxParser.createSecure()
.handler(handler)
.parse(xml);
Features | 主要功能:
- Lambda-friendly SAX handler with fluent API - Lambda 友好的 SAX 处理器,带流式 API
- Register callbacks by element name - 按元素名称注册回调
- Separate callbacks for start, end, and text events - 开始、结束和文本事件的分别回调
Security | 安全性:
- Thread-safe: No (mutable handler registration) - 线程安全: 否(可变处理器注册)
- Null-safe: No (throws on null callback) - 空值安全: 否(null 回调抛异常)
- Since:
- JDK 25, opencode-base-xml V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidcharacters(String content) Called for character content.static SimpleSaxHandlercreate()Creates a new simple SAX handler.voidendElement(String uri, String localName, String qName) Called when an element ends.Registers a callback for any element end.onAnyStart(BiConsumer<String, Map<String, String>> callback) Registers a callback for any element start.Registers a callback for element end.Registers a callback for element start.Registers a callback for element text content.voidCalled when an element starts.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface SaxHandler
endDocument, error, processingInstruction, startDocument, warning
-
Method Details
-
create
Creates a new simple SAX handler. 创建新的简化 SAX 处理器。- Returns:
- a new handler | 新处理器
-
onStart
public SimpleSaxHandler onStart(String elementName, BiConsumer<String, Map<String, String>> callback) Registers a callback for element start. 注册元素开始的回调。- Parameters:
elementName- the element name | 元素名称callback- the callback (name, attributes) | 回调(名称,属性)- Returns:
- this handler for chaining | 此处理器以便链式调用
-
onEnd
Registers a callback for element end. 注册元素结束的回调。- Parameters:
elementName- the element name | 元素名称callback- the callback (element name) | 回调(元素名称)- Returns:
- this handler for chaining | 此处理器以便链式调用
-
onText
Registers a callback for element text content. 注册元素文本内容的回调。- Parameters:
elementName- the element name | 元素名称callback- the callback (text content) | 回调(文本内容)- Returns:
- this handler for chaining | 此处理器以便链式调用
-
onAnyStart
Registers a callback for any element start. 注册任意元素开始的回调。- Parameters:
callback- the callback | 回调- Returns:
- this handler for chaining | 此处理器以便链式调用
-
onAnyEnd
Registers a callback for any element end. 注册任意元素结束的回调。- Parameters:
callback- the callback | 回调- Returns:
- this handler for chaining | 此处理器以便链式调用
-
startElement
Description copied from interface:SaxHandlerCalled when an element starts. 当元素开始时调用。- Specified by:
startElementin interfaceSaxHandler- Parameters:
uri- the namespace URI | 命名空间 URIlocalName- the local name | 本地名称qName- the qualified name | 限定名称attributes- the element attributes | 元素属性
-
endElement
Description copied from interface:SaxHandlerCalled when an element ends. 当元素结束时调用。- Specified by:
endElementin interfaceSaxHandler- Parameters:
uri- the namespace URI | 命名空间 URIlocalName- the local name | 本地名称qName- the qualified name | 限定名称
-
characters
Description copied from interface:SaxHandlerCalled for character content. 为字符内容调用。- Specified by:
charactersin interfaceSaxHandler- Parameters:
content- the character content | 字符内容
-