1. #coding=utf-8
  2. from xml.dom import minidom
  3. from xml.dom.minidom import Document
  4. import xml
  5. def writeXML(filaName="test.xml"):
  6. doc = Document()
  7. feature=doc.createElement("feature")
  8. doc.appendChild(feature)
  9. father=doc.createElement("father")
  10. father.setAttribute('name','noun') #元素属性
  11. text = doc.createTextNode('系统')#元素值
  12.  
  13. feature.appendChild(father)
  14. father.appendChild(text)
  15. son=doc.createElement("son")
  16. text = doc.createTextNode('系统')#元素值
  17. son.appendChild(text)
  18. father.appendChild(son)
  19. f = open(filaName,'w')
  20. f.write(doc.toprettyxml(indent = ''))
  21. f.close()
  22. def readXML(fileName="test.xml"):
  23. dom = xml.dom.minidom.parse(fileName) #打开xml文档
  24. root = dom.documentElement #得到文档元素对象
  25. bb = root.getElementsByTagName('father')
  26. b=bb[0]
  27. print b.nodeName
  28. print b.nodeValue
  29. print b.nodeType
  30. print b.getAttribute("name")
  31. print b.firstChild.data.encode("utf-8")
  32. def main():
  33. writeXML()
  34. # readXML()
  35. if __name__=="__main__":
  36. main()

写入的xml文档内容:

  1. <?xml version="1.0" ?>
  2. <feature>
  3. <father name="noun">
  4. 系统
  5. <son>系统</son>
  6. </father>
  7. </feature>

可能写入的xml文档格式不是很好看,显示父子关系不好,可通过文本写入的方式,调整xml的格式。

对于xml的每个节点有三种属性:

nodeName为结点名字。

nodeValue是结点的值,只对文本结点有效。

nodeType是结点的类型。catalog是ELEMENT_NODE类型

第一个系统是father的标签之间的数据。

  1. #coding=utf-8
  2. from xml.dom import minidom
  3. from xml.dom.minidom import Document
  4. import xml
  5. def writeXML(filaName="test.xml"):
  6. doc = Document()
  7. feature=doc.createElement("feature")
  8. doc.appendChild(feature)
  9. father=doc.createElement("father")
  10. father.setAttribute('name','noun') #元素属性
  11. text = doc.createTextNode('系统')#元素值
  12.  
  13. feature.appendChild(father)
  14. father.appendChild(text)
  15. son=doc.createElement("son")
  16. text = doc.createTextNode('系统')#元素值
  17. son.appendChild(text)
  18. father.appendChild(son)
  19. f = open(filaName,'w')
  20. f.write(doc.toprettyxml(indent = ''))
  21. f.close()
  22. def readXML(fileName="test.xml"):
  23. dom = xml.dom.minidom.parse(fileName) #打开xml文档
  24. root = dom.documentElement #得到文档元素对象
  25. bb = root.getElementsByTagName('father')
  26. b=bb[0]
  27. print b.nodeName
  28. print b.nodeValue
  29. print b.nodeType
  30. print b.getAttribute("name")
  31. print b.firstChild.data.encode("utf-8")
  32. def main():
  33. # writeXML()
  34. readXML()
  35. if __name__=="__main__":
  36. main()
  37. '''
  38. 输出:
  39. father
  40. None
  41. 1
  42. noun
  43. 系统
  44. [Finished in 0.1s]
  45. '''

Python文件之----XML的更多相关文章

  1. python专题-读取xml文件

    关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码.这样并不利于初学者的学习,希望这篇文章可以更通俗易懂的教如何使用python 来读取xml 文件. 什么是 ...

  2. 遍历文件 创建XML对象 方法 python解析XML文件 提取坐标计存入文件

    XML文件??? xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 里面的标签都是可以随心所欲的按照他的命名规则来定义的,文件名为roi.xm ...

  3. python读取/创建XML文件

    Python中定义了很多处理XML的函数,如xml.dom,它会在处理文件之前,将根据xml文件构建的树状数据存在内存.还有xml.sax,它实现了SAX API,这个模块牺牲了便捷性,换取了速度和减 ...

  4. 【304】python专题-读取xml文件

    参考:XML DOM 参考手册(w3school) 参考:python专题-读取xml文件 参考:请问用python怎么修改xml的节点值? 1. 读取标签内的文本(Python) 如下的 xml 文 ...

  5. Python:Dom生成XML文件(写XML)

    http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...

  6. python解析xml文件之xml.etree.cElementTree和xml.etree.ElementTree区别和基本使用

    1.解析速度:ElementTree在 Python 标准库中有两种实现.一种是纯 Python 实现例如 xml.etree.ElementTree ,另外一种是速度快一点的 xml.etree.c ...

  7. python批量json文件转xml文件脚本(附代码)

    场景:在使用了mask rcnn跑实验后标注了大量地json格式文件,现在打算使用yolo和faster rcnn 跑实验 所以需要将之前地json文件转为xml     但是找了很久,没发现有批量处 ...

  8. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

  9. 用 ElementTree 在 Python 中解析 XML

    用 ElementTree 在 Python 中解析 XML 原文: http://eli.thegreenplace.net/2012/03/15/processing-xml-in-python- ...

随机推荐

  1. Yii框架下不同contoller之间的方法调用

    一个contoller CustomerController里怎么调用另一个controller里的action,Acontoller调用SiteContoller的actionShow($id), ...

  2. 【HDOJ】2333 Assemble

    二分+贪心策略.其中注释处很重要. #include <iostream> #include <cstdio> #include <cstring> #includ ...

  3. Strange Way to Express Integers (一般模线性方程组)

    Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 8476   Accepted: 2554 Description Elin ...

  4. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  5. 数学(FFT):BZOJ 3527 [Zjoi2014]力

    题目在这里:http://wenku.baidu.com/link?url=X4j8NM14MMYo8Q7uPE7-7GjO2_TXnMFA2azEbBh4pDf7HCENM3-hPEl4mzoe2w ...

  6. 【动态规划】【缩点】NCPC 2014 G Outing

    题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1793 题目大意: 一辆公交车,上面M个座位,N个人(M<=N<=1000) ...

  7. 函数调用和给对象发消息(Runtime理解)

    在写代码的时候这个差距其实是不打看的出得,很多时候也就无所谓叫什么,很多人为了便于理解,干脆就叫函数调用.这个其实应该是oc的一个特色,消息发送.具体的类typedef struct objc_cla ...

  8. maven打一个可执行的jar包

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-depen ...

  9. BDD框架之lettuce---python3.+安装报错

    跟虫师学习python,学到BDD框架之lettuce( http://www.cnblogs.com/fnng/p/3415609.html),发现python3.5环境下安装lettuce后无法正 ...

  10. SafeNet推出行业首款白盒password软件保护解决方式

    数据保护领域的全球率先企业SafeNet公司日前宣布,推出行业首款採用白盒安全技术的的软件保护方案.SafeNet 圣天诺 软件授权与保护解决方式如今纳入了新的功能,可在"白盒" ...