如何从Java中的xml文件中提取大字符列表

时间:2011-07-19 23:48:34

标签: java xml search xpath extract

我有一个大的xml文件,我不想解析它,我只想存储<information>...</information>之间的每个字符,这些是xml文件中的标记。

我该怎么做?

4 个答案:

答案 0 :(得分:2)

如果问题是您尝试提取的数据将适合内存,但整个XML文件不适合,则使用流式解析器,例如XPP

答案 1 :(得分:1)

如果不解析文件,则无法在<information>元素中准确找到字符。你可以做一些99%的时间都可以工作的东西,但是当有人做了你没想到的东西时会破坏,例如在开始标记中添加空格,或者有一个注释掉的<information>元素,或者放置一部分外部实体中<information>元素的内容。

咬紧牙关。如果是XML,则需要XML解析器来读取它。

答案 2 :(得分:0)

您可能想要解释为什么您不想解析它,因为这有助于建议其他解决方案。

话虽如此,如果您可以为该节点构建XPath,您始终可以使用XPath获取该信息。请参阅this tutorial

更新

鉴于新信息,这不是您想要的解决方案。如果你想将xml视为字符串,那么将它读入StringBuilder(StringBuffer的更快,线程不安全版本)是最好的选择。如果您在使用StringBuffer时遇到问题,请发布您尝试过的代码和错误消息。它的最大大小为java.lang.Integer.MAX_VALUE,即2147483647。

答案 3 :(得分:0)

考虑到您不想使用解析器,并且您只想提取两个标记之间的所有字符,我建议您将xml内容提取为字符串,并使用简单的正则表达式匹配来提取两个标签之间的部分。