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文件。”

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

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

对应的原始图像在下面

2. xml文件说明

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

3. 上代码

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

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

总结

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

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

参考文献:

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

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

  1. ihtml2document能不能根据id获取dom_回到基础:什么是DOM及DOM操作?

    译者:前端小智 来源:valentinog 为了保证的可读性,本文采用意译而非直译. 文本主要介绍文档对象模型(DOM),了解什么是DOM操作,以及如何使用砶 DOM API 与 JS 中的 Web ...

  2. ihtml2document能不能根据id获取dom_一段监视 DOM 的神奇代码

    作者:Eddie Aich 翻译:疯狂的技术宅 原文:https://dev.to/eddieaich/spy-on-the-dom-3d47未经允许严禁转载 通过使用此模块,只需将鼠标悬停在浏览器中 ...

  3. setvlet:控制台获取前端表单以及xml文件数据信息

    一,创建maven项目,编写xml 首先我们从创建一个maven 项目可以使用webapp模板,然后配置web.xml文件 可以直接复制以下代码 <web-appxmlns:xsi=" ...

  4. ihtml2document能不能根据id获取dom_JavaScript学习笔记(十三)-- DOM(上)

    DOM(上) DOM(Document Object Model): 文档对象模型 其实就是操作 html 中的标签的一些能力 我们可以操作哪些内容 获取一个元素 移除一个元素 创建一个元素 向页面里 ...

  5. JQuery笔记-通过tag、class、id获取指定的dom

    如下面这个dom: 从上面观察,这个a,上面是一个div其中的class是down. 通过: $("div .down a") #或 $("div.down a" ...

  6. android获取apk名称_apk是什么文件

    很多人在手机上安装软件时会发现有一个叫apk的文件,这就让人产生疑惑了,apk是什么文件,apk文件怎么打开呢?下面就个大家介绍一下吧. apk是什么文件 APK是Android Package的缩写 ...

  7. VC下通过进程ID获取进程镜像文件路径的方法及其存在的缺陷

    工作中经常会遇到通过进程ID获取进程镜像文件或者其他模块的路径的需求.(转载请指明出处)网上关于方案大致存在两种方案: OpenProcess->GetModuleFileName OpenPr ...

  8. 使用 spring 的 IOC 解决程序耦合——获取spring的Ioc核心容器,并根据id获取对象、核心容器的两个接口(ApplicationContext、BeanFactory)引发出的问题

    IOC概念和spring中的IOC 明确 ioc 的作用: 削减计算机程序的耦合(解除我们代码中的依赖关系). 使用 spring 的 IOC 解决程序耦合 获取spring的Ioc核心容器,并根据i ...

  9. 最新!中国天气网api接口调用,key获取方式,数据请求秘钥获取,城市id获取方法

    以前的天气获取方式已经不支持了,虽然能获取到数据,但是获取到的信息已经不对了. 中国天气网提供的最新接口需要数据请求秘钥key.而且有效期只有7天,用完了还要重新购买,很麻烦,但是获取到的内容绝对是最 ...

最新文章

  1. 虚拟机访问svn服务器超时_SVN卡顿原因及简单修复方法
  2. [转]MySQL Explain详解
  3. 图像处理之直方图均衡MATLAB代码实现
  4. SQL Server 2016 行级别权限控制
  5. IT增值服务实践心得体会:企业客户的钱比个人客户好赚得多
  6. faiss python安装_faiss入门
  7. HTML+CSS+JS实现 ❤️ html5响应式图片轮播❤️
  8. 从一个hibernate配置文件中了解到的东西
  9. java base64编码的三种方式
  10. Android SDK 更新时修改hosts文件仍然无法更新,可试试这个方法……
  11. 转的一个itoa实现(效率很高,并且能够正确处理INT_MIN)
  12. Vue——组件化开发
  13. Archlinux连接HDMI分屏后没声音
  14. vue cli4接入环信webIM
  15. PHP Failed opening required
  16. 人生中最重要的是什么?
  17. 全国程序员高考卷,开始答题!
  18. 广告平台的商业模式,行业分析
  19. springboot+websocket构建在线聊天室(群聊+单聊)
  20. Oracle配置服务

热门文章

  1. 吴恩达《机器学习》学习笔记二——单变量线性回归
  2. 运行Qt程序的一些注意事项
  3. 数字图像处理实验三图像增强
  4. Android之IPC机制
  5. Android缓存学习入门
  6. 百度地图之添加覆盖物
  7. Android 逆向分析大全
  8. CompletableFuture详解~thenAcceptAsync
  9. 掌控谈话~重复对方的话
  10. C++学习之路 | PTA乙级—— 1049 数列的片段和 (20 分)(精简)