我有一个大的xml文件,我不想解析它,我只想存储<information>...</information>
之间的每个字符,这些是xml文件中的标记。
我该怎么做?
答案 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内容提取为字符串,并使用简单的正则表达式匹配来提取两个标签之间的部分。