Android - XPath 评估速度非常慢

2023-12-14

我在用着XPath查询我的XML-file目前大约有100KB.

我正在迭代一个数组并查询列表中的每个值。

不幸的是单个查询大约需要 3-4 秒在调试器下,在禁用调试器的情况下稍微少一些。

有什么想法为什么这么慢吗?我用一个Galaxy S2供测试用。

这是我的代码:

XPath xpath = XPathFactory.newInstance().newXPath();
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
DocumentBuilder builder = builderFactory.newDocumentBuilder();

Document document = builder.parse(new File(file_on_internal_sd_url)));

int size = mPrefs.getInt("no_ids", 0);
for(int i=0;i<size;i++) {
    String id= mPrefs.getString("id_" + i, null);
    String expression = "/tag1/tag2[@id = '" + id+ "']";
    NodeList nodes = (NodeList) xpath.evaluate(expression, document, XPathConstants.NODESET);
    if(nodes.getLength()>0) {
        myElements.add((Element)nodes.item(0));
    }
}

Update

当我省略XPathConstants.NODESET评估很快就完成了,但我没有得到NodeList。它返回一个空字符串......


感谢@nvrmnd,我尝试了一下并找到了一种更好的解析器:

VTD-XML

这是一个example来自开发商。

但是这个Tutorial好多了...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - XPath 评估速度非常慢 的相关文章

  • 如何使用java避免Mysql数据库中的“数据因列被截断”?

    在我的 Java 程序中 Hibernate Bean 类定义一列 例如 TimtableVO java Column name REPEAT DAYS private WeekdayType repeatDays hear Weekday
  • MPAndroidChart:组合图表

    我在用MPAndroidChart 库 https github com PhilJay MPAndroidChart 我想用CombinedChart创建这样的图表 那可能吗 我尝试了一下 但似乎不起作用 因为 这些条目没有按我的预期工作
  • Android apk 调试模式工作正常,但发布模式给出太多警告

    我正在尝试从 eclipse 获取签名的 APK 我有一个可调试的 apk 版本 运行良好 现在发布时 当我尝试使用 Eclipse ADT 进行编译和签名时 我收到很多警告 其中大部分是can t find superclass or i
  • JavaPreparedStatementUTF-8字符问题

    我有一份准备好的声明 PreparedStatement st 在我的代码中 我尝试使用 st setString 方法 st setString 1 userName userName 的值为 ak a setString 方法将 ak
  • Java中通过FTP创建文件夹层次结构

    Java 是否有现成的功能可以在远程 FTP 服务器上创建文件夹层次结构 Apache Commons 确实提供了 FTP 客户端 但我找不到创建目录层次结构的方法 它确实允许创建单个目录 makeDirectory 但创建整个路径似乎并不
  • Ubuntu 的打包 - Web 应用程序

    Web 应用程序没有与 C 或类似文件不同的 make 文件 但是 它需要放置在特定的目录中 例如 var www 我是 Linux 打包新手 所以我的问题是 如何将我的应用程序打包到 deb 中 以便在安装时将其放入 etc myprog
  • 捕获 XSS(跨站脚本)攻击的最佳正则表达式(Java 中)?

    杰夫实际上在净化 HTML http refactormycode com codes 333 sanitize html 但他的示例是用 C 编写的 而我实际上对 Java 版本更感兴趣 有人有更好的 Java 版本吗 他的示例是否足以直
  • 我们可以用java定制一个垃圾收集器吗?

    我们知道java的垃圾收集器是一个低优先级线程 在java中我们可以创建任何具有高优先级的线程 那么是否有可能拥有我们自己定制的具有可变优先级的垃圾收集器线程 我们可以根据内存管理的级别进行设置 有人尝试过吗 如果是的话 您能分享一些关于如
  • Jar Manifest 文件的使用混乱

    我正在阅读使用 jar 工具打包 java 应用程序 我注意到 META INF 目录下创建了一个清单文件 对于一个简单的应用程序来说 感觉它没有任何作用 我在 stackoverflow 上搜索以了解 Manifest 文件的用法 我碰到
  • 如何映射 Map

    I tried ManyToMany cascade CascadeType ALL Map
  • Exif 方向标签返回 0

    我正在开发一个自定义相机应用程序 我面临以下问题 当我尝试使用检索方向时ExifInterface 它总是返回 0 ORIENTATION UNDEFINED 这使我无法将图像旋转到正确的状态 从而无法正确显示 我使用示例代码来设置相机旋转
  • JTable中动态加载大量数据

    这是我的问题 我目前有一个 JTable 其中包含 5 000 到超过 200 000 行 你知道我要说什么了 数据已经加载到内存中了 这不是问题 但是如何 我可以创建一个高效的 JTable 以便它只加载以下行 是可见的 并且任何事件仅作
  • JBoss 5 截断 base64 cookie 字符串的尾部 =

    从 JBoss 4 升级到 JBoss 5 后 我注意到最烦人的回归 它截断 base64 cookie 值的尾部等号 我花了很长时间才明白问题不是我的代码而是 JBoss 的 我用 google 搜索了一下 发现这是一个已知的问题issu
  • 从 AJP 连接器请求中检索 Shibboleth 属性

    当我在 Apache 上运行 Shibboleth 身份验证时遇到了一个奇怪的问题 当 Tomcat7 在后端运行时 Apache 通过 mod proxy ajp 发送所有内容 Shibboleth 的参数也是如此 In the 文档 h
  • Web 应用程序似乎启动了名为 [22] 的线程,但未能停止它。这很可能造成内存泄漏

    我有一个 Web 应用程序 后端有 Servlet 部署在 tomcat 上 该应用程序是简单的java应用程序 我经常在服务器日志中看到此错误 严重 Web 应用程序似乎启动了一个名为 22 但未能阻止它 这很有可能 造成内存泄漏 是否存
  • Admob - 没有广告可显示

    你好 我尝试制作一些在 Android 手机上显示广告的示例程序 并尝试在 v2 2 的模拟器上测试它 代码中的一切似乎都很好 但调试器中的 AdListener 表示 响应消息为零或空 onFailedToReceiveAd 没有广告可显
  • 如何手动添加Android Studio依赖

    我多次尝试向我的项目添加依赖项 但每次都会出现错误 我想添加它们的依赖项是 de hdodenhof circleimageview 1 3 0 and com github bumptech glide glide 3 6 1 所以我想下
  • 选择的 xpath 父属性

    xml文档的语法
  • 在测试期间调用预定方法[重复]

    这个问题在这里已经有答案了 我正在使用 Maven 开发 SpringBoot 应用程序 我有一个班级 Component有方法的注释m与 Scheduled initialDelay 1000 fixedDelay 5000 注解 这里f
  • Spring 和 Hibernate 连接池

    如何使用 Spring 和 Hibernate 配置连接池 Thanks Venu 您可以使用 DBCP 组件

随机推荐

  • 根据子字符串中的数字对字符串进行排序

    我有一个像这样的字符串 is2 Thi1s T4est 3a 我需要对其进行排序 所以 该数组看起来像这样 Thi1s is2 3a T4est 数字可以出现在字符串中的任何位置 我知道如何按字母顺序对字符串进行排序以及如何对数字数组进行排
  • 使用 openpyxl 复制整个工作表

    请有人给我一个例子 如何复制带有样式的整个工作表 从行和列 到同一工作簿中的第二个工作表 也可以在新的工作簿中 谢谢 P S 我尝试进行深度复制 但未能保存更改的数据单元格 目的是 我尝试用我的数据填充一些工作表 第一个工作表是我的模板 我
  • 如何在 Lisp 中将函数存储在变量中并使用它

    我想存储一个像这样的函数print在一个变量中 这样我就可以输入一些简短的内容 例如p e g In Scheme define print display print Hello world n alternate way define
  • 通过 RewriteCond 和 .htaccess 对 RewriteRule 进行分组

    我有一个网页模板 用于运行多个登陆页面 htaccess 用于将友好 URL 定向到 PHP 代码中的 pageid 这一切都有效 但目前我必须在每个规则或重定向冲突之前添加重写条件行 您可以在下面的伪代码中看到这一点 RewriteEng
  • DynamoDB 中的复合键具有超过 2 列?

    我正在探索在我所处理的应用程序中使用 DynamoDB 该应用程序目前只有一个数据库组件 在 RDS 上运行的 MySQL 数据库 我们大量使用 AWS 并为我们的数据库使用分片方案 但如果没有人工干预 它只能让我们到目前为止 在使用 Au
  • 在 Visual Studio 中显示构建时间

    我们的构建服务器构建 C 项目之一花费的时间太长 它用视觉工作室2008 跑步devenv com MyApp sln Build see devenv 命令行开关 尽管这是针对较新版本的 VS 有没有办法让 devenv com 记录在解
  • 如何根据表单状态隐藏普通按钮

    我试图隐藏我的保存vanilla根据表单状态按钮 当表单状态 创建时 不应显示普通按钮 我尝试了不同的方法 但没有任何作用 我在 js 中创建一个函数 如果表单处于创建状态 则返回 true function isHideState for
  • 以编程方式安装 APK - 返回值

    在我的应用程序中 我从我的活动中调用 javascript 接口 在与此界面关联的 web 视图中 我要求用户下载并安装 APK 我正在使用 startActivityForResult 来启动安装过程 下载文件后 这是代码 Intent
  • 游戏在快速从后台恢复后退出暂停状态

    我正在使用 SpriteKit 开发一个游戏 可以在执行期间暂停并可以恢复 但我有一个问题applicationDidEnterBackground当游戏暂停时按下主页按钮时 因为当我恢复游戏时 即使游戏之前已暂停 实体也会立即开始移动 我
  • android studio 禁用日期选择器中的天数

    我想禁用日期选择器中的某一天 我有一个数组存储我想要禁用的日期 我有这个代码来禁用日历中的日期 for Calendar loopdate min date c min date c before max date c min date c
  • 如何将原始电子邮件 (MIME) 从 AWS SES 转换为 Gmail?

    我有一个 Gmail 帐户链接到我的域帐户 AWS SES 会将消息发送到我的 S3 存储桶 从那里 SNS 将以原始格式将消息转发到我的 Gmail 地址 如何自动将原始消息转换为标准电子邮件格式 原始消息采用标准电子邮件格式 我认为您想
  • python 中的运算符重载,对象位于运算符右侧

    我最近了解了 python 中的运算符重载 我想知道以下内容是否可行 考虑以下假设 人为的类 class My Num object def init self val self val val def add self other num
  • C++ getline 方法不起作用

    抱歉 我对 C 很陌生 但一般不熟悉编程 所以我尝试做一个简单的加密 解密 然而 当我对以前的代码添加修改时 因此没有两个用于加密和解密的程序 我发现代码 getline 方法不再起作用 相反 它只是在运行代码时忽略它 这是代码 int m
  • 在 Google 自定义搜索中使用 TBS(或等效参数)

    使用时谷歌自定义搜索用于选择特定类型搜索引擎的 TBM 参数 例如 专利的 tbm pts 或博客的 tbm blg 似乎受到支持 尽管参数列表中没有正确记录这一点 然而 当使用这种 特殊 搜索时 通常会使用 TBS 参数来扩展查询 不幸的
  • 敏感的 ASP.NET Session 数据是否需要加密?

    ASP NET Session string key 数据是否需要加密才能安全 如果此类数据始终保留在服务器上 那么只要数据是通过 SSL 从客户端发送的 那么在那里存储信用卡信息 密码等是否就可以安全了 鉴于所有的反对票都投在这里 我将添
  • 在android中显示后台服务的弹出窗口

    您好 android 中可以显示后台运行服务的弹出对话框吗 答案是肯定的 我该怎么做 有几种选择 您可以使用主题并使活动的外观和行为类似于对话框 如这个问题 通过设置android theme你的属性
  • img 标签显示方向错误

    我在这个链接中有一张图片 http d38daqc8ucuvuv cloudfront net avatars 216 2014 02 19 2017 13 48 jpg 正如您所看到的 这是一个方向正确的正常图像 但是 当我将此链接设置为
  • 如何使用seaborn实现Lineplot,x轴为“日期”

    我尝试实现seaborn lineplot 数据框具有日期值列表作为索引 试图将其作为 x 轴 Dataframe info 将 日期 字段显示为对象 我需要以日期为 x 轴的 4 种类型的列值的线图 当我尝试执行下面的代码时 它显示错误消
  • 为什么从 java 9 PhantomReference java doc 开始,它就专门用于 POST-mortem 清理操作,尽管它之前是 PRE-mortem

    PhantomReference java 8 的 java 文档更少看起来像这样 幻像引用对象 在收集器之后排队 确定它们的引用对象可以以其他方式被回收 幻影 参考最常用于调度事前清理 行动以比 Java 更灵活的方式 最终确定机制 如果
  • Android - XPath 评估速度非常慢

    我在用着XPath查询我的XML file目前大约有100KB 我正在迭代一个数组并查询列表中的每个值 不幸的是单个查询大约需要 3 4 秒在调试器下 在禁用调试器的情况下稍微少一些 有什么想法为什么这么慢吗 我用一个Galaxy S2供测