ihtml2document能不能根据id获取dom_使用DOM进行XML文件的解析

8ab8f9abeb2bc67d1e686a60c7588912.png

1. 什么是XML?

xml是格式化的纯文本,用于存储数据和格式。

2. DOM是什么?

DOM是xml的一种解析方法(此外还包括SAX等,此处不提),它将xml文件抽象成为一个树型结构,这棵树个各个树叶就是节点。也就是说,DOM 定义了所有文档元素的对象和属性,以及访问它们的方法(接口)。

DOM的主要性质:

  • 文档是一个文档节点,即根节点,对象树型是domTree.documentElement
  • 每个 XML 标签是一个元素节点,元素节点接口方法见链接, 主要包括的方法和属性有:
    • getElementsByTagName():根据tag获取elements
    • getAttributeNode():获取特定属性值
    • childNodes:子节点的nodelist
    • ...
  • 包含在 XML 元素中的文本是文本节点
  • 每一个 XML 属性是一个属性节点
  • 注释属于注释节点

3. 使用dom解析xml例程

  1. 例程说明

“博主用了一个图像标注系统CVAT进行车道线的标注,如下图,系统输出的标注结果就是一个xml文件。我们的label有6类,'left_3', 'left_2', 'left_1', 'right_1', 'right_2', 'right_3'。我们的工作就是解析xml文件。”

45a6febf068d9bfb45329f015dc2465e.png

我的xml文件如下所示, 可以复制下来进行代码测试。

<?xml version="1.0" encoding="utf-8"?>

对应的原始图像在下面

104f187476937fe0c9f44afee4764463.png

2. xml文件说明

为了方便可以使用浏览器打开,是下面这样的格式。可以看到,根节点就是annotations, 其子节点包括version、meta、image等等,其中meta->task->labels是我们规定的标注规范中的label类别,包括"left_3"...."right_3"等。另外各个image节点就是我们对应的每一张图像的标注结果,子元素节点包括多个polyline,每个polyline就是一条车道线,采用str类型的点对表示。另外,image节点中包含了"id","name","width","height"等等属性节点,我们可以通过"name"属性节点找到对应的图像名称。

de5d68ef4b0ff43a315c3f3a4c86f621.png

3. 上代码

#-*-coding:utf-8-*-

运行脚本结果如下图所示,各个车道线分别由不同的点集组成。

dc5c27a9a80fac9df6fadbd85bd3d12f.png

总结

DOM将XML看成一个节点,节点类型包括元素节点,文本节点等,解析过程就是利用element类的各种属性和方法来得到想要的值的过程。

码字不易,觉得不错的看官就点个赞再走吧~

参考文献:

  1. xml dom课程,w3school
  2. xml中element的属性和方法
  3. cvat图像标注系统

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

青茶什么时候拆_为什么日本绿茶那么绿?比中国的高级绿茶还要绿

我们经常可以从电影、电视、动画片、日式抹茶看到日本绿茶所呈现出来的样子&#xff0c;绿的&#xff0c;鲜脆欲滴的绿。到了日本&#xff0c;待客之道泡煎茶&#xff0c;可以更直观的看到煎茶的绿&#xff0c;这种绿是我们在国内不曾见到的绿&#xff0c;中国的高级绿茶也呈现…

单台web服务器性能,单台web服务器如何尽可能的提高网站性能

我觉得首先要选择一个合适的环境&#xff0c;对于大多数php站点来说&#xff0c;运行在lnmp(linuxnginxmysqlphp)环境下是个理想的选择.首先一点linux对比win的优势我就不说了。其次nginx的优势总结起来就是负载均衡&#xff0c;高并发性能优异。这里php采用fastcgi的方式接入n…

如何将dataset中的值赋值给datatable_金融行业实战项目:如何理解业务?

【面试题】下表是某金融App的数据&#xff0c;请结合Excel数据集中的数据完成下列问题(某金融公司面试题&#xff0c;文末有数据下载 )原始数据如下所示&#xff1a;为方便后期分析&#xff0c;我们对数据进行分类。数据通常分为3类&#xff1a;用户数据、行为数据、产品数据。…

python换循环颜色_python – 增加matplotlib颜色循环

你可以打电话ax2._get_lines.get_next_color()在彩色上推进彩色循环仪.不幸的是,这会访问私有属性._get_lines,因此这不是官方公共API的一部分,并且不能保证在未来版本的matplotlib中工作.一种更安全但不太直接的推进色彩循环器的方法是绘制零图&#xff1a;ax2.plot([], [])im…

css练习题4,复习webpack4之CSS文件代码分割

之前学习过webpack3的知识&#xff0c;但是webpack4升级后还是有很多变动的&#xff0c;所以这次重新整理一下webpack4的知识点&#xff0c;方便以后复习。这次学习webpack4不仅仅要会配置&#xff0c;记住核心API&#xff0c;最好还要理解一下webpack更深层次的知识&#xff0…

minhash算法检索相似文本_基于向量的深层语义相似文本召回?你需要bert和faiss...

在文章大话知识图谱--聊聊智能客服中&#xff0c;我介绍了智能客服系统利用FAQ问答库做自动问答&#xff0c;也就是基于信息检索的自动问答系统。它的一般做法流程是&#xff1a;构建一个大型的FAQ问答库&#xff0c;形式是&#xff08;question&#xff0c;answer&#xff09;…

vuex的命名空间有哪些_Python3 命名空间和作用域

命名空间先看看官方文档的一段话&#xff1a;A namespace is a mapping from names to objects.Most namespaces are currently implemented as Python dictionaries。命名空间(Namespace)是从名称到对象的映射&#xff0c;大部分的命名空间都是通过 Python 字典来实现的。命名…

ajax实现翻书效果,jQuery实现手机版页面翻页效果的简单实例

var page 1;var size 6;var mark 0;var url "{pigcms{:U(Order/index, array(page>d%))}";var commentTpl \去评价\;var template \""))}">\\{store_name}\\\\""))}">\\ \\{create_time}\总价&#xff1a;&#xffe5;…

yolo极大抑制_pytorch实现yolov3(4) 非极大值抑制nms

在上一篇里我们实现了forward函数.得到了prediction.此时预测出了特别多的box以及各种class probability,现在我们要从中过滤出我们最终的预测box.理解了yolov3的输出的格式及每一个位置的含义,并不难理解源码.我在阅读源码的过程中主要的困难在于对pytorch不熟悉,所以在这篇文…

抽象类可以生成自己的对象吗_大理石可以自己抛光吗?大理石自己抛光方法解答...

大理石可以自己抛光吗&#xff1f;大理石自己抛光方法解答。大理石只有经过抛光后&#xff0c;表面才会有更好的光泽和质感。具体抛光可以要求大理石抛光团队施工&#xff0c;也可以自己做。那么大理石自己抛光方法是什么呢&#xff1f;下面石大夫为您解答。大理石自己抛光方法…

ajax 参数带百分号,Ajax请求中带有IPv6地址后的百分号的问题

IPv6地址后的百分号:对于连入网络但没有IPv6路由器或DHCPv6服务器的IPv6客户端&#xff0c;它们始终使用fe80::/64链路本地网络地址。如果运行Windows的计算机中有多个网络适配器连接到不同的网段&#xff0c;可以在IP地址后加百分号和区域ID数字来区分不同的网络&#xff0c;如…

高中数学40分怎么办_高二数学不会,准高三该怎么办?40分到高考140如何逆袭?...

原标题&#xff1a;高二数学不会&#xff0c;准高三该怎么办&#xff1f;40分到高考140如何逆袭&#xff1f;高二&#xff0c;这个年级是有点尴尬的&#xff0c;适应了高一的学习&#xff0c;感觉高二学习没有了动力&#xff0c;离高考还远&#xff0c;于是有些孩子就开始了放任…

python识别人脸多种属性_深度学习人脸识别仅9行python代码实现?同时高效处理100张相片?...

随着人脸识别、视频结构化等计算视觉相关技术在安防、自动驾驶、手机等领域走向商业化应用阶段&#xff0c;计算视觉技术行业市场迎来大规模的爆发。伴随人脸识别、物体识别等分类、分割算法不断提升精度。计算视觉的核心算法深度学习算法日渐成熟&#xff0c;通过对输出与对应…

服务器可以装2个系统吗,云服务器可以装多个系统吗

云服务器可以装多个系统吗 内容精选换一换共享云硬盘是一种支持多个云服务器并发读写访问的数据块级存储设备&#xff0c;具备多挂载点、高并发性、高性能、高可靠性等特点。主要应用于需要支持集群、HA(High Available&#xff0c;指高可用集群)能力的关键企业应用场景&#x…

关卡 动画 蓝图 运行_UE4无缝过场动画

最近有个哥们给我看他们最近在做的一个游戏&#xff0c;其中有这样一段镜头https://www.zhihu.com/video/1171378736917364736运用到了一个很常用的过场方式&#xff0c;就是平时我们所说的无缝过场。过场动画不通过黑屏转换&#xff0c;而是通过运镜来代入。这是一种比较容易实…

python条件循环叠加_Python基础:条件判断与循环的两个要点

一、条件判断&#xff1a;Python中&#xff0c;条件判断用if语句实现&#xff0c;多个条件判断时用if...elif实现&#xff1a;看下面一段程序#python 3.3.5#test if...elifage 20if age > 6:print (teenager)elif age > 18:print (adult)else:print (kid)程序输出结果&a…

H3C批量收集服务器信息,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)...

该脚本针对H3C服务器分别对redfish和restfull两种协议的认证方式进行测试&#xff0c;并合并。有三个类&#xff0c;分别是redfish协议测试、restfull协议测试、以及两个合并测试文章最后使用redfish模块简单进行认证访问测试。import requestsimport jsonrequests.packages.ur…

个推的appid是指什么_推箱子软件介绍→安卓下最专业的推箱子软件(推箱快手)...

俗语说&#xff1a;工欲善其事必先利其器目前各安卓系统下的应用市场有很多很多推箱子软件&#xff0c;除了soko推箱子软件比较好以外&#xff0c;其余没有任何一款软件是推箱子好手想去使用的&#xff0c;为什么呢&#xff1f;先说说soko这款软件好在哪儿&#xff1f;点推式推…

list转字符串_剑指offer 38——字符串的排列

本题主要在于对回溯的理解&#xff0c;优化时可以结合 java 特性&#xff0c;以及排列的一些知识。原题输入一个字符串&#xff0c;打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组&#xff0c;但里面不能有重复元素。示例:输入&#xff1a;s "abc&…

v5系列服务器后面板不存在以下哪款指示,群晖RS10613xs+ NAS服务器后面板简介

群晖RS10613xs NAS服务器后面板简介群晖RS10613xs NAS服务器后面板简介:NAS服务器的后面板往往承担着数据的输入、输出&#xff0c;电影的输入&#xff0c;网络的传输&#xff0c;容量的扩展&#xff0c;电能的支持以及产品的散热等重要功能&#xff0c;看似简单的后面板往往是…