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;用户数据、行为数据、产品数据。…

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;…

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

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

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

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

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

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

个推的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;看似简单的后面板往往是…

怎么判断冠词用a还是an_【语法微课堂】英语冠词的用法,学会这4点,轻松玩转a、an、the...

点击上方??蓝色字&#xff0c;轻松关注&#xff01;Well begun is half done.良好的开端是成功的一半。准备了一下午&#xff0c;终于可以给大家更新了&#xff0c;给大家分享了冠词讲解的视频、音频和文字版&#xff0c;自行取用吧&#xff01;?冠词讲解视频版(小提示&…

pb自定义控件 事件_Android WebView与下拉刷新控件滑动冲突的解决方法

使用WebView时一般会在外层使用下拉刷新控件如(SwipeRefreshLayout)。但是测试时会发现网页无法上拉&#xff0c;往上滑动就会触发下拉刷新控件的refresh事件。所以这里记录一下解决该问题的办法。1、通过webView.getScrollY() 的值来判断是否滚动到顶部private SwipeRefreshLa…

双路服务器cpu必须型号相同,双路主板存在使用不同型号的cpu之说吗?还是必须使用一模一样相同的cpu型号?...

双路主板不存在使用不同型号的cpu一说&#xff0c; 可以使用不同型号的cpu&#xff0c; 不过参数差别不能过大(例如处理器的架构差别)多路主板就是一种主从结构&#xff0c; 处理器之间是协同工作&#xff0c;由中间的高速总线实现两个处理器的配合&#xff0c;不存在处理器必须…

打开多个界面_如何创建用户界面

CANBusKit&#xff0c;是一款集成汽车总线开发、测试、分析的专业软件工具。本章内容主要介绍如何使用CBK_OpenPanel工具为CANBUSKIT 工程创建用户界面&#xff0c;本工具目前支持Vector的xvp格式的面板文件导入。首先是启动软件(试用版软件只能从CANBusKit软件界面中启动该软件…

汤姆克兰西全境封锁服务器维护时间,汤姆克兰西全境封锁无法登录怎么解决 无法登录解决方法攻略...

《汤姆克兰西&#xff1a;全境封锁》是款大型射击游戏&#xff0c;这款游戏的画面十分的精致&#xff0c;在这款游戏中会有各种不同的任务&#xff0c;玩家要带着武器来进行射击。在游戏的时候很多玩家们都反映无法登录怎么解决&#xff1f;那么下面小编就为玩家们详细解说下关…

需要的依赖_三十而已:夫妻关系中需要的是坦诚和依赖

最近三十而已大热播&#xff0c;开始时很多人都看好顾佳和许幻山这一对&#xff0c;顾佳有才有颜&#xff0c;上得厅堂下得厨房&#xff0c;处理事情干净利索&#xff0c;是难得的贤内助。许幻山温柔帅气还有才&#xff0c;关键是还对老婆好&#xff0c;他们的组合可以说是很让…

语言建立一个学生籍贯管理簿_编写一个Excel自定义函数,身份证信息提取如探囊取物...

观看视频更直观我们建立信息表时不仅要输入性别、生日和年龄等信息&#xff0c;往往也需要输入身份证号码&#xff0c;而身份证号码中包含有籍贯、性别、生日和年龄等信息&#xff0c;从身份证号码中提取上述信息可以减少输入工作量&#xff0c;提高工作效率。利用Excel中的内置…