python 之xml 使用原生xml.dom

这篇具有很好参考价值的文章主要介绍了python 之xml 使用原生xml.dom。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、xml操作
  • 使用xml进行创建
    <Placemark id="placemark_id">
      <name>模型</name>
      <Location>
        <longitude>121.6097139799135</longitude>
      </Location>
    </Placemark>
    
    from xml.dom import minidom
    
    # 创建一个新的XML文档
    doc1 = minidom.Document()
    
    # 创建根元素并设置其属性
    root1_elem = doc1.createElement("Placemark")
    root1_elem.setAttribute("id", "mode_placemark_id")
    doc1.appendChild(root1_elem)
    
    # 创建<name>元素并添加到根元素, 值为模型
    name_elem = doc1.createElement("name")
    name_elem.appendChild(doc1.createTextNode("模型"))
    root1_elem.appendChild(name_elem)
    
    # 创建<Location>元及其子元素
    location_elem = doc1.createElement("Location")
    root1_elem.appendChild(location_elem)
    
    # 设置经度
    lon_elem = doc1.createElement("longitude")
    lon_elem.appendChild(doc1.createTextNode("121.6097139799135"))
    location_elem.appendChild(lon_elem)
    
    print(doc1.toprettyxml(indent="  "))
    
二、获取值、修改值
  • 直接获取数据

    lon = lon_elem.firstChild.nodeValue
    lon = doc.getElementsByTagName('longitude')[0].firstChild.nodeValue
    
  • 通过父节点定义子节点 并获取值

    location_node = root_elem.getElementsByTagName('Location')[0]
    lon = location_node.getElementsByTagName('longitude')[0].firstChild.nodeValue
    
  • 重新赋值

    lon_elem.firstChild.nodeValue = '114.1284142342'
    
  • 添加子节点

    # 设置纬度
    lat_elem = doc1.createElement("latitude")
    lat_elem.appendChild(doc1.createTextNode("24.67367524368988"))
    location_elem.appendChild(lat_elem)
    
三、将一个xml文档,插入另一文档中(将一个节点值插入另一个节点)
  • doc2 = minidom.Document()
    # 创建根节点
    root2_elem = doc2.createElement("Root")
    doc2.appendChild(root2_elem)
    
    alt_elem = doc2.createElement("altitude")
    alt_elem.appendChild(doc2.createTextNode('118'))
    root2_elem.appendChild(alt_elem)  # 添加到根节点
    
    range_elem = doc2.createElement("range")
    range_elem.appendChild(doc2.createTextNode('0'))
    root2_elem.appendChild(range_elem)  # 添加到根节点
    
  • 将一个xml文档某个元素插入另一个文档,插入另一文档中

    将alt_elem 插入到doc1
    imported_alt_elem = doc1.importNode(alt_elem, deep=True)
    location_elem.appendChild(imported_alt_elem)
    
    将root2_elem及其下的子元素 插入到doc1
    imported_root_elem_other = doc1.importNode(root2_elem, deep=True)
    location_elem.appendChild(imported_root_elem_other)
    
  • 将另个文档中的节点,插入指定节点

    将imported_alt_elem 节点插入 lon_elem 的前面
    imported_alt_elem = doc1.importNode(alt_elem, deep=True)
    location_elem.insertBefore(imported_alt_elem, lon_elem)
    
    将imported_alt_elem 放到 lat_elem 的后面
    imported_alt_elem = doc1.importNode(alt_elem, deep=True)
    location_elem.insertBefore(imported_alt_elem, lat_elem.nextSibling)
    
    将imported_alt_elem 放到 lon_elem 的后面
    imported_alt_elem = doc1.importNode(alt_elem, deep=True)
    location_elem.insertBefore(imported_alt_elem, lon_elem.nextSibling)
    
  • 将一个文档下的子节点放入另外一个节点

    # 遍历root2_elem的所有子元素
    for child in root2_elem.childNodes:
        # 导入子元素到doc1
        imported_child = doc1.importNode(child, deep=True)
        # 将导入的子元素添加到location_elem中
        location_elem.appendChild(imported_child)
    
  • 将某个文档直接插入另一个文档的某个节点下文章来源地址https://www.toymoban.com/news/detail-725241.html

    直接通过已经存在的引用导入节点
    imported_root2_elem = doc1.importNode(root2_elem, deep=True)
    location_elem.appendChild(imported_root2_elem)
    
    通过查询XML文档的根元素来导入节点
    imported_doc2_elem = doc1.importNode(doc2.documentElement, deep=True)
    location_elem.appendChild(imported_doc2_elem)
    

到了这里,关于python 之xml 使用原生xml.dom的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 内置对象和方法、前端基础之BOM和DOM

    RegExp对象 Math对象 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行“对话” DOM (Document Object Model)是指文档对象模型,通过它,可以访问HTML文档的所有元素。 一些常用的Window方法: window.innerHeight - 浏览器窗口的内部高度 window.innerWidth - 浏览器

    2024年02月06日
    浏览(33)
  • 〖大前端 - 基础入门三大核心之JS篇㉟〗- JavaScript 的DOM简介

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(53)
  • 前端基础(七)_DOM元素获取(getElementById、getElementsByTagName、getElementsByClassName、querySelector等)

    一个id在一个页面是唯一的,所以我们可以使用 获取元素,使用变量来接收,直接就能获取到这个元素,通过 id 名去获取元素,一次只能获取一个元素。 直接能获取到这个元素。 通过标签名获取: 例子: 通过 获取所有div标签元素,得到的是一个HTMLCollection数组,元素集合

    2024年02月01日
    浏览(40)
  • 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性

    说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费 , 如需要项目实战或者是体系化资源,文末名片加V! 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司担任研发部门CTO。 荣誉: 2022年度博客之星Top4、2023年度超

    2024年02月04日
    浏览(58)
  • 深入学习 XML 解析器及 DOM 操作技术

    所有主要的浏览器都内置了一个XML解析器,用于访问和操作XML 在访问XML文档之前,必须将其加载到XML DOM对象中 所有现代浏览器都有一个内置的XML解析器,可以将文本转换为XML DOM对象 以下示例将一个文本字符串解析为XML DOM对象,并使用JavaScript从中提取信息: 示例 示例解释

    2024年03月17日
    浏览(42)
  • javaee dom4j读取xml文件

    dom4j-1.6.1.jar 运行

    2024年02月13日
    浏览(85)
  • DOM 节点遍历:掌握遍历 XML文档结构和内容的技巧

    遍历是指通过或遍历节点树 通常,您想要循环一个 XML 文档,例如:当您想要提取每个元素的值时。 这被称为\\\"遍历节点树\\\"。 下面的示例循环遍历所有 book 的子节点,并显示它们的名称和值: 输出: 示例解释 将 XML 字符串加载到 xmlDoc 中 获取根元素的子节点 对于每个子节点

    2024年04月08日
    浏览(83)
  • dom4j 解析 mybatis mapper xml 文件

    01:  CarMapper.xml :   02: Car pojo :    CarMapper.xml       \\\"C:Program FilesJavajdk-17binjava.exe\\\" -ea -Didea.test.cyclic.buffer.size=1048576 -Didea.launcher.port=62271 \\\"-Didea.launcher.bin.path=C:MinecloudIDEA_2019IntelliJ IDEA 2019.1bin\\\" -Dfile.encoding=UTF-8 -classpath \\\"C:MinecloudIDEA_2019IntelliJ IDEA 2019.1libidea_rt.jar;C:Minecl

    2024年02月10日
    浏览(40)
  • 【196】JAVA8 用 DOM 方式的 API 解析XML文件,无需引入第三方依赖。

    JAVA8 可以使用标准的 DOM 方式的 API 来编写代码解析 XML 文件,无需引入第三方依赖。下面是两个测试用的 XML 文件: test.xml test2.xml 负责接收所有信息的 AllDataDTO.java 负责接收用户信息的 AllDataUserDTO.java 处理 XML 文件的工具类,XmlUtils.java 用于测试效果的类 Main.java 输出结果:

    2024年01月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包