查找具有 minidom 属性的元素

2024-03-18

Given

<field name="frame.time_delta_displayed" showname="Time delta from previous displayed frame: 0.000008000 seconds" size="0" pos="0" show="0.000008000"/>
<field name="frame.time_relative" showname="Time since reference or first frame: 0.000008000 seconds" size="0" pos="0" show="0.000008000"/>
<field name="frame.number" showname="Frame Number: 2" size="0" pos="0" show="2"/>
<field name="frame.pkt_len" showname="Packet Length: 1506 bytes" hide="yes" size="0" pos="0" show="1506"/>
<field name="frame.len" showname="Frame Length: 1506 bytes" size="0" pos="0" show="1506"/>
<field name="frame.cap_len" showname="Capture Length: 1506 bytes" size="0" pos="0" show="1506"/>
<field name="frame.marked" showname="Frame is marked: False" size="0" pos="0" show="0"/>
<field name="frame.protocols" showname="Protocols in frame: eth:ip:tcp:http:data" size="0" pos="0" show="eth:ip:tcp:http:data"/>

如何立即获取 name="frame.len" 的字段,而无需迭代每个标签并检查属性?


我认为你不能。

来自家长element, 你需要

for subelement in element.GetElementsByTagName("field"):
    if subelement.hasAttribute("frame.len"):
        do_something()

根据您 3 月 11 日的评论,如果您的文档结构稳定并且没有令人讨厌的意外情况(例如属性内的尖括号),您可能需要尝试不可想象的方法并使用正则表达式。这不是推荐的做法,但可以工作并且比实际解析文件容易得多。我承认我自己有时也这么做过。还没瞎呢

所以在你的情况下你可以(假设<field>标签不跨越多行):

xmlfile = open("myfile.xml")
for line in xmlfile:
    match = re.search(r'<field\s+name="frame.len"\s+([^>]+)/>', line):
    if match:
        result = match.group(1)
        do_something(result)

If a <field> tag can跨越多行,您可以尝试将整个文件作为纯文本加载到内存中,然后扫描它以查找匹配项:

filedump = open("myfile.xml").read()
for match in re.finditer(r'<field\s+name="frame.len"\s+([^>]+)/>', filedump):
    result = match.group(1)
    do_something(result)

在这两种情况下,result将包含以下属性frame.len。正则表达式假设frame.len始终是标记内的第一个属性。

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

查找具有 minidom 属性的元素 的相关文章

随机推荐

  • 如何使用 dom 在 XML 文件中追加元素?

    我的 XML 文件如下所示
  • 如何测试接受命令行参数的并发 Java 程序?

    我有一个 Java 程序 其主要方法 在 主类中 需要命令行参数 该程序也是并发的 使用线程和其他东西 我想对程序进行大规模重构 在开始重构之前 我想为 main 方法创建一个测试套件 我想用不同的命令行参数测试 main 方法 我希望在执
  • URL 路由 C# mvc 和 Web 表单

    所以我有一个 webforms 和一个 mvc 应用程序组合在一起 并试图让事情正确路由 我的默认路由按预期工作 但是当我单击其中一个视图中的操作链接时 它没有路由到正确的页面 这是我的路由代码 void RegisterRoutes Ro
  • Tomcat Digest 与 Manager WebApp

    我正在尝试为 tomcat 管理器应用程序设置摘要密码 我有
  • 隐藏变量在 R 中如何表现?

    是否有任何重要的 1 原因不导出名称为 fnname在 R 包中 我知道点前缀变量的主要用途是在使用以下函数搜索环境时将变量表示为隐藏ls 并表示对象或列表中的字段应被视为私有字段 如 S4 Data 字段 test env lt new
  • 读取 read_csv2(readr 包)中的行名称

    我正在尝试从这里加载示例数据集 http www agrocampus ouest fr math RforStat decathlon csv http www agrocampus ouest fr math RforStat deca
  • JavaScript 中的 split()

    我有代码 function filter var url window location alert url alert url split 1 当我启动它时 我只收到一条警报消息 http localhost 8000 index 3 1
  • 找不到 Spring MVC Neo4jConfiguration 类

    我正在学习 Spring MVC 我想扩展 Neo4jConfiguration 类 但它不可用 我导入了以下依赖项
  • 我无法登录 Tomcat Manager 应用程序

    我在 stackoverflow 上阅读了很多主题来解决我的问题 但没有一个有用 当我尝试使用很多不同的配置登录管理器应用程序 http localhost 8080 manager html 1 时 但我总是获得401 未经授权尝试使用权
  • SQL 约束/触发器 - 是否可以编写一个约束来检查“插入记录时它必须包含两个字段之一”?

    是否可以对输入的记录设置约束 触发器 以检查用户是否至少输入了三个字段之一 所有字段都可以为空 例如 我有一个数据库用于跟踪其他软件中的错误和新功能 当发现错误时 会创建一个功能记录 该记录可以具有三个外键 discoveredID fix
  • 如何匹配字符串中的第一个单词?

    我想匹配这个词 St or St or st or st 但只能作为字符串的第一个单词 例如 St Mary Church Church St 应该首先找到 St st Mary Church Church St 应该只找到 st st M
  • 为什么这个隐式函数没有被应用?

    尝试 Alexey Romanov 中提出的 TupleN 的隐式转换如何在元组之间应用隐式转换 https stackoverflow com questions 23911151 how to apply implicit conver
  • 跨不同项目设置发布/订阅订阅?

    在我的 GCP 项目 项目A 我创建了一个 Pub sub 主题 topicA 并且在此发布 订阅主题中发布的消息需要在其他 GCP 项目 项目B 通过订阅 订阅B 推荐的设置方式是什么订阅B Define 订阅B在项目 A 中 并使用适当
  • 双显示器中的 Delphi XE Form 和 Source

    有人知道我是否可以将 IDE 设置为在一个显示器和另一个显示器上显示源代码 我谈论相同的 pas 因为我可以在每个监视器中查看 2 个不同的 pas 不确定 XE 但在 2007 年你可以去Tools gt Options打开选项对话框 然
  • Windows 窗体旋转

    当您在 Net 中创建表单时 它会显示为纵向布局的对话框 通常没有人喜欢横向或颠倒地阅读 但我有一个非常充分的理由旋转表格 有人知道如何在 Windows Vista 上用 C 实现这一点吗 必须在 WinForms 中吗 在 WPF 中
  • Backbone.js 在填充集合后调用渲染

    我试图在获取集合后调用渲染 在我的初始化方法中 我有 this collection bind all this render this this collection fetch 在 IE 中 有时它似乎会在集合有数据之前尝试渲染 集合似
  • 如何将活动 Excel 工作簿附加到电子邮件

    我整个上午都在尝试获取此 VBA 脚本 将我的活动 Excel 文档附加到自动生成的 Outlook 消息中 如果我将文件路径声明为字符串并附加它 一切都会正常工作 除了我想附加当前 Excel 文档的完整文件路径而不是使用静态字符串值 这
  • 优化 boost::spirit::qi 解析器

    我有一个解析器 它基本上打印出堆栈机的操作 并根据给定的运算符优先级给出一些表达式 我的目标是尽可能优化速度 我读过了一篇关于 qi 优化的文章 https code google com p scribblings by apoch wi
  • Bash - 变量变量[重复]

    这个问题在这里已经有答案了 我有变量 foo something 并想使用 bar foo echo bar 得到 某事 的回应 在 bash 中 您可以使用 variable 使用可变变量 foo something bar foo ec
  • 查找具有 minidom 属性的元素

    Given