XPath - 如何获取具有相同名称的多个标签的列表

2024-03-21

<?xml version="1.0"?>
<shop>
    <shoes>
        <brand>Nike</brand>
        <size>13</size>
        <colour>White</colour>
        <price>34.99</price>
        <additional name="abc">123</additional>
        <additional name="def">456</additional>
        <additional name="ghi">789</additional>
        <additional name="jkl">101</additional>
    </shoes>
    <trousers>
        <brand>Levi</brand>
        <size>36</size>
        <legSize>33</legSize>
        <colour>Stonewash</colour>
        <price>69.99</price>
        <additional name="mno">112</additional>
        <additional name="pqr">131</additional>
        <additional name="stu">415</additional>
        <additional name="vwx">161</additional>
    </trousers>
</shop>

给定上面的 xml 文件,我将如何检索所有的列表<additional>内的标签<shoes>标签?我想获取“名称”的所有值以及标签之间的数值。像这样的东西:

abc, 123
def, 456
ghi, 789
jkl, 101

问题是我不知道会有多少个额外的标签。可能没有,也可能有 20 个。我需要某种方法来统计所有这些,然后剔除信息。


这是一个使用的示例XPath从 JDK 执行查询。它假设变量xml包含您的 XML 文档。

XPathFactory factory = XPathFactory.newInstance();
XPath xPath = factory.newXPath();
NodeList nodeList = (NodeList) xPath.evaluate("//shoes/additional", new InputSource(new StringReader(xml)), XPathConstants.NODESET);
for (int i = 0; i < nodeList.getLength(); ++i) {
    String name = nodeList.item(i).getAttributes().getNamedItem("name").getNodeValue();
    String text = nodeList.item(i).getTextContent();
    System.out.println(name + ", " + text);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XPath - 如何获取具有相同名称的多个标签的列表 的相关文章

随机推荐

  • Spark流式批量查找数据

    我需要从 HDFS 上的文件查找 Spark 流作业中的一些数据 该数据由批处理作业每天获取一次 有没有 设计模式 为了这样的任务 如何在执行后立即重新加载内存中的数据 哈希图 每日更新 当查找数据时 如何连续服务流作业被抓取 一种可能的方
  • 电子如何创建增量文件

    I use electron builder构建我的应用程序并成功构建第一个版本 其中包含三个输出 foosetup exe foo 0 0 1 full nupkg 和 RELEASES 现在我想实现自动更新 并且我已经部署了后端服务通过
  • Scala 中语法糖的所有实例是什么?

    Scala 中语法糖的所有实例是什么 它们很难搜索 因为大多数 全部都是纯粹的符号 因此在不知道概念名称的情况下很难搜索 TODO 隐式转换 匿名函数的语法 其他我忘记的事情 Basics a b相当于a b a b c相当于a b c 除
  • 如何在 PHP / XAMPP 中启用 cURL

    如何在 PHP 中启用 cURL On Debian http en wikipedia org wiki Debian with Apache http en wikipedia org wiki Apache HTTP Server 2
  • 使用按钮在 Chart.js 中切换图表

    我是一名初学者开发人员 我一直在尝试使用 ChartJS 将一些数据显示到屏幕上 我希望能够单击一个按钮来生成另一组新的数据 轴 我一直在尝试遵循其他堆栈溢出答案 但似乎没有一个对我有用 请参见下文
  • 在 R 中操作变量以生成新数据集

    我是一个相对较新的 R 用户 如果对我的数据集有任何帮助 我真的很感激 我有一个包含 2400 万行的数据集 数据集中有 3 个变量 患者姓名 药房名称以及该次就诊时从药房领取的药物数量 有些患者多次出现在数据集中 即他们在不同时间点从不同
  • 如何在 dart/Flutter 中使用 Firebase 快照字典上的 SplayTreeMap?

    我已成功通过 StreamBuilder 取回数据并需要对其进行排序 如何按键对快照数据的映射进行排序 另外 如果你给出一个这样做的例子 我的价值也会有所帮助 我想我想做一个 SplayTreeMap 但如果有更好的方法请提供 这是我的字典
  • Knife Bootstrap 的 Chef 节点配置问题 - 无法通过服务器进行身份验证

    我正在尝试使用 Knife Bootstrap 设置厨师客户端节点 knife bootstrap nodename x user P passwd sudo 收到以下错误消息 Chef 在尝试创建客户端 nodename url com
  • JAXB - 如何序列化集合子类中的字段

    我在序列化我的类 ArrayList 的子类 中的字段时遇到问题 添加到列表中的项目已序列化 但字段未序列化 XmlRootElement public static class NumberedList extends ArrayList
  • 以编程方式将 SurfaceView 添加到在 ImageView 下按 Z 顺序排列的 FrameLayout

    编辑2a 随意跳到底部询问简洁的问题 I can 通过xml绘制SurfaceView https stackoverflow com questions 5203547 draw surfaceview from layout xml 就
  • UtteranceProgressListener 不会调用函数

    我正在尝试制作一个语音驱动的应用程序 但是我遇到了一个主要问题 My UtteranceProgressListener无论我将 Speak 方法放在哪里 类都不会调用任何给定的方法 这是我的代码 这是我的 OnCreate 方法 prot
  • Swift:将 AsyncStream 映射到另一个 AsyncStream

    Update 接受的答案没有直接回答原来的问题 但帮助解决了我试图解决的根本问题 我想将 AsyncStream 这是一个 AsyncSequence 映射到另一个元素类型为 T2 的 AsyncSequence 中 我在中添加了一些细节这
  • 检测文件上传需要多长时间(PHP)

    是否可以知道 服务器端 文件上传所需的时间 我有一个图像上传 API 在我的响应中我想返回上传时间 不包括脚本执行时间 我想是的 有 SERVER REQUEST TIME 指示 HTTP 请求开始的变量 因此在脚本的一开始 upload
  • 如何从 Windows 应用商店应用程序中的视频获取缩略图?

    我目前正在开发一个具有录制视频功能的应用程序 我知道如何录制视频并将其保存在localFolder应用程序的 我的问题是我需要在用户录制视频后向他显示缩略图 因此 为此我想从录制的视频中提取第一帧 最终视频存储在StorageFile对象
  • Debiansources.list.d 与sources.list

    简单的问题 我在谷歌搜索时还没有找到解释 相对于sources list sources list d 的用途是什么 什么是d代表 我知道sources list包含debian可以下载软件的存储库的链接 虽然谷歌可以找到大量信息 但您不需
  • ClassNotFoundException:javax.ws.rs.client.ClientBuilder

    我正在尝试从 Web 应用程序 eclispe 中的动态 Web 应用程序 使用 Jersey Rest 服务 如下所示 Client client ClientBuilder newBuilder build Here is the er
  • 无法在 Web 网格中使用导航属性

    在网络网格中 我无法在我的类 产品和产品图像类 之间使用导航属性 例如我在网络网格中使用了以下代码 grid Column test item gt item ProductImages First Id item Price 但我收到错误
  • Fragment.onStop() 是否保证被调用?

    从这个链接的表格中 http developer android com reference android app Activity html ActivityLifecycle http developer android com re
  • Django Response 和 HttpResponse 之间的区别

    django 中的 Response 和 HttpResponse 有什么区别 我有一点困惑 from rest framework response import Response Return Respose and from djan
  • XPath - 如何获取具有相同名称的多个标签的列表