我正在尝试做一些我认为是基本任务的事情。
我追求一个简单而整洁的Java 解决方案,它可以按元素拆分 XML 内容。我不想将整个内容加载到内存中(即我想流式传输元素),我想掌握每个元素的字符串表示形式,以便将其发送到我想要的任何地方。
我使用 StAX的明显不成功的拉解析尝试:
while(xsr.hasNext()) {
if( xsr.next() == XMLEvent.START_ELEMENT && xsr.getLocalName().equals("Order") ) {
String element = xsr.getElementText();
// or String element = xsr.getText();
}
}
我也尝试过Smooks,但没有成功。特别是,此处提供的示例http://www.smooks.org/mediawiki/index.php?title=V1.4:Smooks_v1.4_User_Guide#Basic_Splitting_and_Routing并没有提供获取字符串 XML 的简洁方法元素。如果您想将 XML 元素发送到文件、数据库或 JMS 队列,这一切都很容易和顺利……但如果我想接触 String XML,那就不行了。
我非常沮丧,我开始认为编写自己的基于 SAX 的解决方案可能会更省力。谁能证明我错了?