[英]How to extract a big list of characters from xml file in Java
我有一个大的 xml 文件,我不想解析它,我只想存储<information>...</information>
之间的每个字符,它们是 xml 文件中的标签。
我怎样才能做到这一点?
如果问题是您尝试提取的数据适合 memory,但整个 XML 文件不适合,则使用流式解析器,例如XPP 。
如果不解析文件,您将无法准确找到<information>
元素中的字符。 你可以做一些在 99% 的时间里都有效的事情,但是当有人做了你没想到的事情时它会中断,比如在开始标签中放置空格,或者有一个注释掉的<information>
元素,或者把部分外部实体中的<information>
元素。
硬着头皮。 如果是 XML,则需要 XML 解析器来读取它。
您可能想解释为什么您不想解析它,因为这将有助于建议其他解决方案。
话虽如此,如果您可以为该节点构建 XPath,您始终可以使用 XPath 获取该信息。 请参阅本教程。
更新
鉴于新信息,这不是您想要的解决方案。 如果您想将 xml 视为字符串,则将其读入 StringBuilder(StringBuffer 的更快、线程不安全的版本)是您最好的选择。 如果您在使用 StringBuffer 时遇到问题,请发布您尝试过的代码和错误消息。 它的最大尺寸是java.lang.Integer.MAX_VALUE
,即 2147483647。
考虑到您不想使用解析器并且只想提取两个标签之间的所有字符,我宁愿建议您将 xml 内容提取为字符串,并使用简单的正则表达式匹配来提取两个标签。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.