python的xml.dom学习笔记

首先说一下,由于这篇文章主要是自己随性学习写的,所以读者看起来可能很乱,呵呵。可以给大家稍微推荐一篇:http://www.cnblogs.com/xuxm2007/archive/2011/01/16/1936610.html 稍微清晰一点


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

#coding=utf-8

 

#解析xml文件中的所有的link标签

from xml.dom import minidom

from xml.dom.minidom import getDOMImplementation

doc=minidom.parse("d:\\hello.html")

 

nodes=doc.getElementsByTagName("link")

 

for node in nodes:

    print "<",node.tagName,

    print "type=\"",node.getAttribute("type"),"\"",

    print "rel=\"",node.getAttribute("rel"),"\"",

    print "href=\"",node.getAttribute("href"),"\"",

    print "/>"

     

print "通过另外一种方式获得link标签"

linknodes=doc.getElementsByTagName("link")

for in range(len(linknodes)):

    print linknodes[i].getAttribute("type"),

    print linknodes[i].getAttribute("rel"),

    print linknodes[i].getAttribute("href")

     

 

#操作节点

node=linknodes[0]

print dir(node)

print node.parentNode

print node.prefix

print node.nodeType,node.nodeValue,node.nodeName

print node.localName

print node.childNodes

print node.firstChild,node.lastChild

print node.attributes

print node.namespaceURI

print node.nextSibling

print "--"*10

print node.tagName

 

print "==="*20

impl=getDOMImplementation()

newdoc=impl.createDocument(None "some_tag"None)

top_element=newdoc.documentElement

node1=newdoc.createTextNode("node1")

node2=newdoc.createTextNode("node2")

node3=newdoc.createTextNode("node3")

 

top_element.appendChild(node1)

top_element.appendChild(node2)

top_element.appendChild(node3)

 

top_element.removeChild(node3)

top_element.insertBefore(node3,node2)

 

print top_element.childNodes

  运行结果:

< link type=" text/css " rel=" stylesheet " href=" http://www.cnblogs.com/css/common.css " />

< link type=" text/css " rel=" stylesheet " href=" http://www.cnblogs.com/Skins/kubrick/style.css " />

< link type=" text/css " rel=" stylesheet " href=" http://www.cnblogs.com/css/common2.css " />

< link type=" text/css " rel=" stylesheet " href=" http://common.cnblogs.com/css/shCore.css " />

< link type=" text/css " rel=" stylesheet " href=" http://common.cnblogs.com/css/shThemeDefault.css " />

< link type=" application/rss+xml " rel=" alternate " href=" http://www.cnblogs.com/rollenholt/rss " />

< link type=" application/rsd+xml " rel=" EditURI " href=" http://www.cnblogs.com/rollenholt/rsd.xml " />

< link type=" application/wlwmanifest+xml " rel=" wlwmanifest " href=" http://www.cnblogs.com/rollenholt/wlwmanifest.xml " />

通过另外一种方式获得link标签

text/css stylesheet http://www.cnblogs.com/css/common.css

text/css stylesheet http://www.cnblogs.com/Skins/kubrick/style.css

text/css stylesheet http://www.cnblogs.com/css/common2.css

text/css stylesheet http://common.cnblogs.com/css/shCore.css

text/css stylesheet http://common.cnblogs.com/css/shThemeDefault.css

application/rss+xml alternate http://www.cnblogs.com/rollenholt/rss

application/rsd+xml EditURI http://www.cnblogs.com/rollenholt/rsd.xml

application/wlwmanifest+xml wlwmanifest http://www.cnblogs.com/rollenholt/wlwmanifest.xml

['ATTRIBUTE_NODE', 'CDATA_SECTION_NODE', 'COMMENT_NODE', 'DOCUMENT_FRAGMENT_NODE', 'DOCUMENT_NODE', 'DOCUMENT_TYPE_NODE', 'ELEMENT_NODE', 'ENTITY_NODE', 'ENTITY_REFERENCE_NODE', 'NOTATION_NODE', 'PROCESSING_INSTRUCTION_NODE', 'TEXT_NODE', '__doc__', '__init__', '__module__', '__nonzero__', '__repr__', '_attrs', '_attrsNS', '_call_user_data_handler', '_child_node_types', '_get_attributes', '_get_childNodes', '_get_firstChild', '_get_lastChild', '_get_localName', '_get_tagName', '_magic_id_nodes', 'appendChild', 'attributes', 'childNodes', 'cloneNode', 'firstChild', 'getAttribute', 'getAttributeNS', 'getAttributeNode', 'getAttributeNodeNS', 'getElementsByTagName', 'getElementsByTagNameNS', 'getInterface', 'getUserData', 'hasAttribute', 'hasAttributeNS', 'hasAttributes', 'hasChildNodes', 'insertBefore', 'isSameNode', 'isSupported', 'lastChild', 'localName', 'namespaceURI', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue', 'normalize', 'ownerDocument', 'parentNode', 'prefix', 'previousSibling', 'removeAttribute', 'removeAttributeNS', 'removeAttributeNode', 'removeAttributeNodeNS', 'removeChild', 'replaceChild', 'schemaType', 'setAttribute', 'setAttributeNS', 'setAttributeNode', 'setAttributeNodeNS', 'setIdAttribute', 'setIdAttributeNS', 'setIdAttributeNode', 'setUserData', 'tagName', 'toprettyxml', 'toxml', 'unlink', 'writexml']

<DOM Element: head at 0x1b3e968>

None

1 None link

link

[]

None None

<xml.dom.minidom.NamedNodeMap object at 0x01B4D648>

http://www.w3.org/1999/xhtml

<DOM Text node "u'\n'">

--------------------

link

============================================================

[<DOM Text node "'node1'">, <DOM Text node "'node3'">, <DOM Text node "'node2'">]

时间: 2025-01-02 12:09:55

python的xml.dom学习笔记的相关文章

MS XML DOM 学习笔记Demo程序

dom|xml|笔记|程序 Demo程序演示了MSXML DOM方式的使用方法 程序将输出以下结果: <?xml version="1.0"?><root version="1.0" company="xxx">        <date>2005-08-01</date>        <book>                <name>UML和模式应用</nam

python 解析XML python模块xml.dom解析xml实例代码_python

一 .python模块 xml.dom 解析XML的APIminidom.parse(filename)加载读取XML文件 doc.documentElement获取XML文档对象 node.getAttribute(AttributeName)获取XML节点属性值 node.getElementsByTagName(TagName)获取XML节点对象集合 node.childNodes #返回子节点列表. node.childNodes[index].nodeValue获取XML节点值 nod

PHP操作XML文件学习笔记

原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作方式很多,这次学习的是通过DOMDocument进行操作,其他的操作方法可以参考 http://www.oschina.net/code/snippet_110138_4727 1.对XML文件的遍历 通过DOMDocument对于XML文件的操作的方法:首先要实例化一个DOMDocument类的对

比较详细的javascript DOM 学习笔记第1/2页_javascript技巧

一.DOM基础1.节点(node)层次Document--最顶层的节点,所有的其他节点都是附属于它的.DocumentType--DTD引用(使用<!DOCTYPE>语法)的对象表现形式,它不能包含子节点.DocumentFragment--可以像Document一样来保存其他节点.Element--表示起始标签和结束标签之间的内容,例如<tag></tab>或者<tag/>.这是唯一可以同时包含特性和子节点的节点类型.Attr--代表一对特性名和特性值.这

Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例_python

最近正好在寻求一种Python的数据库ORM (Object Relational Mapper),SQLAlchemy (项目主页)这个开源项目进入了我的视线,本来想尝试着使用Django的ORM模块的,无奈Django的模块联系比较紧密,没能单独分拆下来,一定程度上说明Django自成体系的生态系统在给我们带来快速便捷的开发环境的同时牺牲了组装的灵活性. 初次学习,也没实质感觉到SQLAlchemy的好处,不过看其介绍的很多大公司均采用该项目,而且其支持的数据库还是蛮丰富的,所以我觉得花点时

JavaScript高级程序设计 DOM学习笔记_javascript技巧

第十章 DOM DOM是针对XML和HTML文档的一个API:即规定了实现文本节点操控的属性.方法,具体实现由各自浏览器实现. 1. 节点层次 1) 文档节点:document,每个文档的根节点. 2) 文档元素:即<html>元素,文档最外层元素,文档节点第一个子节点. 3) Node类型: ①Node是DOM中各种节点类型的基类型,共享相同的基本属性和方法. □ Node.Element_NODE(1); □ Node.ATTRIBUTE_NODE(2); □ Node.TEXT_NODE

JavaScript Dom学习笔记(一)

在这篇博客里面我们主要讲述了form对象,以及写JavaScript代码的时候不同浏览器之间的差异和在JavaScript中使用正则表达式的一些知识点,接下来我们做了两个练习来说明了这些知识点,那就是:回车实现Tab跳转和全额文本框. form对象 (1) 先来写段代码举例说明一下吧  代码如下 复制代码 <form id="form1" action="ball.htm" onsubmit="if(document.getElementById('

Python中的异常处理学习笔记_python

Python 是面向对象的语言,所以程序抛出的异常也是类. 常见的异常类 1.NameError:尝试访问一个没有申明的变量 2.ZeroDivisionError:除数为 0 3.SyntaxError:语法错误 4.IndexError:索引超出序列范围 5.KeyError:请求一个不存在的字典关键字 6.IOError:输入输出错误(比如你要读的文件不存在) 7.AttributeError:尝试访问未知的对象属性 8.TypeError:传给函数的参数类型不正确,比如给 int 函数传

python字符串格式化之学习笔记

在python中格式化输出字符串使用的是%运算符,通用的形式为 •格式标记字符串 % 要输出的值组 其中,左边部分的"格式标记字符串"可以完全和c中的一致.右边的'值组'如果有两个及以上的值则需要用小括号括起来,中间用短号隔开.重点来看左边的部分.左边部分的最简单形式为: •%cdoe 其中的code有多种,不过由于在python中,所有东西都可以转换成string类型,因此,如果没有什么特殊需求完全可以全部使用'%s'来标记.比如: •'%s %s %s' % (1, 2.3, ['