广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python如何用dom模块生成XML文
  • 183
分享到

Python如何用dom模块生成XML文

如何用模块Python 2023-01-31 02:01:22 183人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

python如何用dom模块生成XML文件呢?主要方法三点:首先、生成XML节点(node)createElement("node_name")然后、给节点添加属性值(Attribute)node.setAttribute("att_nam

python如何用dom模块生成XML文件呢?

主要方法三点:

首先、生成XML节点(node)

createElement("node_name")

然后、给节点添加属性值(Attribute)

node.setAttribute("att_name", "arr_value")

最后、节点的标签值(data)

createTextNode("node_value")

其中第1、3点在创建完节点(节点值)之后,还需使用下面的方法添加到指点的节点的位置下面:

prev_node.appendChild(cur_node)

这里的prev_node要添加节点的上一层节点,而cur_node即为当前要添加的节点了。

代码如下:

Created on 2012-8-28   

@author:  walfred 

@module: domxml.genXML  

@description: 

'''  

import xml.dom.minidom as Dom  

 

if __name__ == "__main__":  

    doc = Dom.Document()  

    root_node = doc.createElement("book_store")  

    root_node.setAttribute("name", "newhua")  

    root_node.setAttribute("WEBsite", "CODEGo.net")  

    doc.appendChild(root_node)  

 

    book_node = doc.createElement("book1")  

 

    book_name_node = doc.createElement("name")  

    book_name_value = doc.createTextNode("hamlet")  

    book_name_node.appendChild(book_name_value)  

    book_node.appendChild(book_name_node)  

 

    book_author_node = doc.createElement("author")  

    book_author_value = doc.createTextNode("William Shakespeare")  

    book_author_node.appendChild(book_author_value)  

    book_node.appendChild(book_author_node)  

 

    root_node.appendChild(book_node)  

 

    f = open("book_store.xml", "w")  

    f.write(doc.toprettyxml(indent = "\t", newl = "\n", encoding = "utf-8"))  

    f.close()



这个代码将在当前目录下生成一个book_store.xml文件:

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

<book_store name="newhua" website="CODEGO.net">  

    <book1>  

        <name>hamlet</name>  

        <author>William Shakespeare</author>  

    </book1>  

</book_store>



代码如下:

Created on 2012-8-28  

 

@author:  walfred 

@module: domxml.wXMLbyDom  

@description: 

 

import xml.dom.minidom as Dom  

 

class XMLGenerator:  

    def __init__(self, xml_name):  

        self.doc = Dom.Document()  

        self.xml_name = xml_name  

 

    def createNode(self, node_name):  

        return self.doc.createElement(node_name)  

 

    def addNode(self, node, prev_node = None):  

        cur_node = node  

        if prev_node is not None:  

            prev_node.appendChild(cur_node)  

        else:  

            self.doc.appendChild(cur_node)  

        return cur_node  

 

    def setNodeAttr(self, node, att_name, value):  

        cur_node = node  

        cur_node.setAttribute(att_name, value)  

 

    def setNodeValue(self, cur_node, value):  

        node_data = self.doc.createTextNode(value)  

        cur_node.appendChild(node_data)  

 

    def genXml(self):  

        f = open(self.xml_name, "w")  

        f.write(self.doc.toprettyxml(indent = "\t", newl = "\n", encoding = "utf-8"))  

        f.close()  

 

if __name__ == "__main__":  

    myXMLGenerator = XMLGenerator("book_store.xml")  

 

    #xml root node  

    node_book_store = myXMLGenerator.createNode("book_store")  

    myXMLGenerator.setNodeAttr(node_book_store, "name", "new hua")  

    myXMLGenerator.setNodeAttr(node_book_store, "website", "CODEGO.net")  

    myXMLGenerator.addNode(node = node_book_store)  

 

    #book01  

    node_book_01 = myXMLGenerator.createNode("book")  

 

    node_book_01_name = myXMLGenerator.createNode("name")  

    myXMLGenerator.setNodeValue(node_book_01_name, "Hamlet")  

    myXMLGenerator.addNode(node_book_01_name, node_book_01)  

 

    node_book_01_author = myXMLGenerator.createNode("author")  

    myXMLGenerator.setNodeValue(node_book_01_author, "William Shakespeare")  

    myXMLGenerator.addNode(node_book_01_author, node_book_01)  

 

    node_book_01_price = myXMLGenerator.createNode("price")  

    myXMLGenerator.setNodeValue(node_book_01_price, "$20")  

    myXMLGenerator.addNode(node_book_01_price, node_book_01)  

 

    node_book_01_grade = myXMLGenerator.createNode("grade")  

    myXMLGenerator.setNodeValue(node_book_01_grade, "good")  

    myXMLGenerator.addNode(node_book_01_grade, node_book_01)  

 

    myXMLGenerator.addNode(node_book_01, node_book_store)  

 

    #book 02  

    node_book_02 = myXMLGenerator.createNode("book")  

 

    node_book_02_name = myXMLGenerator.createNode("name")  

    myXMLGenerator.setNodeValue(node_book_02_name, "shuihu")  

    myXMLGenerator.addNode(node_book_02_name, node_book_02)  

 

    node_book_02_author = myXMLGenerator.createNode("author")  

    myXMLGenerator.setNodeValue(node_book_02_author, "naian shi")  

    myXMLGenerator.addNode(node_book_02_author, node_book_02)  

 

    node_book_02_price = myXMLGenerator.createNode("price")  

    myXMLGenerator.setNodeValue(node_book_02_price, "$200")  

    myXMLGenerator.addNode(node_book_02_price, node_book_02)  

 

    node_book_02_grade = myXMLGenerator.createNode("grade")  

    myXMLGenerator.setNodeValue(node_book_02_grade, "good")  

    myXMLGenerator.addNode(node_book_02_grade, node_book_02)  

 

    myXMLGenerator.addNode(node_book_02, node_book_store)  

 

    #gen  

    myXMLGenerator.genXml()

同样这个方法会在本目录下生成一个book_store.xml文件,代码如下:

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

<book_store name="new hua" website="CODEGO.net">  

    <book>  

        <name>Hamlet</name>  

        <author>William Shakespeare</author>  

        <price>$20</price>  

        <grade>good</grade>  

    </book>  

    <book>  

        <name>shuihu</name>  

        <author>naian shi</author>  

        <price>$200</price>  

        <grade>good</grade>  

    </book>  

</book_store>


--结束END--

本文标题: Python如何用dom模块生成XML文

本文链接: https://www.lsjlt.com/news/186550.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python如何用dom模块生成XML文
    Python如何用dom模块生成XML文件呢主要方法三点:首先、生成XML节点(node)createElement("node_name")然后、给节点添加属性值(Attribute)node.setAttribute("att_name...
    99+
    2023-01-31
    如何用 模块 Python
  • 如何使用python xml模块
    本篇内容主要讲解“如何使用python xml模块”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python xml模块”吧!一、xml简介xml是实现不同语言或程序之间进行数据交换的协...
    99+
    2023-06-07
  • python如何生成xml文件以及美化
    这篇文章将为大家详细讲解有关python如何生成xml文件以及美化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3....
    99+
    2023-06-14
  • 用DEDE5.7单页文档如何生成XML
    用DEDE5.7单页文档如何生成XML?用DEDE5.7单页文档生成XML的方法新建一个你要生成的模板(后缀为htm)推荐学习:dedecms教程例: 制作一个单独页面,生成xml文件频道管理 -- > 单独页面管理 -- >...
    99+
    2017-05-01
    DEDE
  • 如何解析XML DOM文档对象模型用法
    这期内容当中小编将会给大家带来有关如何解析XML DOM文档对象模型用法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。向大家简单介绍一下XML DOM,XML DOM是X...
    99+
    2022-10-19
  • python PIL模块与随机生成中文验证码
    在这之前,你首先得了解Python中的PIL库。PIL是Python Imaging Library的简称,PIL是一个Python处理图片的库,提供了一系列模块和方法,比如:裁切,平移,旋转,改变尺寸等等...
    99+
    2022-06-04
    验证码 中文 模块
  • 如何正确使用PHP DOM-XML创建XML文件
    如何正确使用PHP DOM-XML创建XML文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们在创建XML文件并对其进行解析时,通常都会用到PHP DOM-XML。那么...
    99+
    2023-06-17
  • 如何使用random模块生成验证码
    这篇“如何使用random模块生成验证码”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何...
    99+
    2022-10-19
  • Python使用PIL模块生成随机验证码
    Python生成随机验证码,需要使用PIL模块,具体内容如下 安装: pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = I...
    99+
    2022-06-04
    验证码 模块 Python
  • Python如何生成随机数及random随机数模块应用
    目录1、随机生成0-1的浮点数random.random2、随机生成指定范围内的浮点数random.uniform3、随机生成指定范围整数random.randint4、随机从给定集...
    99+
    2022-11-11
  • 如何运用DOM解析VB.NET XML文件
    小编给大家分享一下如何运用DOM解析VB.NET XML文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!XML文件是安全的,在程序中我们大多数的文件都是XML文...
    99+
    2023-06-17
  • Python使用functools模块中的partial函数生成偏函数
    python 中提供一种用于对函数固定属性的函数(与数学上的偏函数不一样) # 通常会返回10进制 int('12345') # print 12345 # 使用参数 返回 8进制 int('11...
    99+
    2022-06-04
    函数 模块 Python
  • Python如何使用马尔可夫模型自动生成文章
    这篇文章主要介绍“Python如何使用马尔可夫模型自动生成文章”,在日常操作中,相信很多人在Python如何使用马尔可夫模型自动生成文章问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何使用马尔可...
    99+
    2023-06-02
  • 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)
    这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarke...
    99+
    2023-10-23
    word Java导出Word Freemarker Word文档导出功能 根据模板文件导出Word文档
  • Qt如何利用DOM类实现读取xml文件
    今天小编给大家分享一下Qt如何利用DOM类实现读取xml文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目介绍利用D...
    99+
    2023-07-02
  • 如何用shell生成简单格式的xml
    这篇文章主要介绍“如何用shell生成简单格式的xml”,在日常操作中,相信很多人在如何用shell生成简单格式的xml问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何用shell生成简单格式的xml”的疑...
    99+
    2023-06-09
  • Python文件处理方法、os模块和glob模块如何使用
    这篇文章主要讲解了“Python文件处理方法、os模块和glob模块如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python文件处理方法、os模块和glob模块如何使用”吧!一、文...
    99+
    2023-07-06
  • 如何使用Python+ChatGPT批量生成论文
    目录用Python+ChatGPT批量生成论文概述下载论文pdf转文本用GPT-3生成概述输出概述集成测试总结用Python+ChatGPT批量生成论文概述 做算法研究离不开阅读大量...
    99+
    2023-02-27
    Python ChatGPT批量生成论文 Python ChatGPT批量生成
  • 关于python如何生成exe文件
    python 生成 exe 文件的方法:首先安装 pyinstaller,代码为【pip install pyinstaller】;然后使用 pyinstaller 命令打包成 ex...
    99+
    2023-05-16
    python exe文件 python生成exe文件
  • Linux模块文件如何编译到内核和独立编译成模块
    这篇文章主要介绍“Linux模块文件如何编译到内核和独立编译成模块”,在日常操作中,相信很多人在Linux模块文件如何编译到内核和独立编译成模块问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux模块文件...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作