【发布时间】:2011-01-31 17:07:52
【问题描述】:
我想使用 dom4j 解析一个大的 xml 文件。我正在使用 dom4j 的功能,您可以为路径表达式注册事件处理程序,以忽略我不关心的元素。此处解释了该功能:http://dom4j.sourceforge.net/dom4j-1.6.1/faq.html#large-doc。
我从那里引用: “然后,将在针对特定处理程序注册的每个路径的开始和结束处调用这些处理程序。当找到路径的开始标记时,将调用注册到该路径的处理程序的 onStart 方法。当如果找到路径,则调用注册到该路径的处理程序的 onEnd 方法。
onStart 和 onEnd 方法传递一个 ElementPath 的实例,该实例可用于检索给定路径的当前元素。如果处理程序希望“修剪”正在构建的树以节省内存使用,它可以简单地调用处理程序 onEnd() 方法中正在处理的当前元素的 detach() 方法。"
我的问题是我不知道应该给出什么路径,以便根节点的所有子节点都由这两种方法处理。
我的 xml 文件是这样的:
<root .....>
<chef name="" ..../>
<chef name="" ..../>
<recipe name = .... />
<recipe name...../>
....
如果我想处理厨师元素,那么路径将是 /root/chef。 对于配方元素,路径为 /root/recipe。
但是应该为 dom4j 提供什么路径以便它能够处理(在 onStart()、onEnd() 中)厨师和食谱元素?
非常感谢!
【问题讨论】:
-
dom4j 不适合大型 XML 文件,这是证明sdiwc.us/digitlib/journal_paper.php?paper=00000582.pdf
标签: java xml-parsing dom4j