Xml:
<?xml version= ' 1.0 ' encoding= ' utf-8 '?>
<!--This was a test about xml-->
<booklist type= ' scicence and enginerring ' >
<book category= ' math ' >
<title>learing math</title>
<title>learing math1</title>
<author>zhagn san</author>
<pageNumber>562</pageNumber>
</book>
<book category= ' python ' >
<title>learing python</title>
<author>li si</author>
<pageNumber>544</pageNumber>
</book>
</booklist>
The following code shows each level of node and content description:
#coding =utf-8
From Xml.dom.minidom Import Parse
Domtree=parse (r "D:\\test.xml")
Booklist=domtree.documentelement
Print Booklist
Print "*" *30
Books=booklist.getelementsbytagname (' book ')
Print "Books:", books
Print "Books[0].childnodes:", Books[0].childnodes
Print "books[0].childnodes[1]:", books[0].childnodes[1]
Print "Books[0].childnodes[1].childnodes:", Books[0].childnodes[1].childnodes
Print "books[0].childnodes[1].childnodes[0]:", Books[0].childnodes[1].childnodes[0]
Print "Books[0].childnodes[1].childnodes[0].data:", Books[0].childnodes[1].childnodes[0].data
#print "books[0].childnodes[1].childnodes[1]:", books[0].childnodes[1].childnodes[1]
Explain:
#books是获取booklist对象中所有book节点的list集合
Books: [<dom element:book at 0x28855d0>, <dom Element:book at 0x2885990>]
#books [0]. ChildNodes: is the first book node of all child nodes, is a list
Books[0].childnodes: [<dom text node "U ' \ n '"), <dom element:title at 0x28856e8>, <dom text Node "u ' \ n ', <dom element:title at 0x2885788>, <dom Text node "U ' \ n '";, <dom Element:author at 0x2885828>, <dom text node "U ' \ n '", <dom element:pagenumber at 0x28858c8>, <dom text node "U ' \ n '";
#books [0].childnodes[1]: Is the second child node of the first book node, is a title tag element-:<title>learing Math1</title> Child nodes that contain labels and labels: text nodes
BOOKS[0].CHILDNODES[1]: <dom element:title at 0x28856e8>
#books [0].childnodes[1].childnodes: Is a child node (text node) of the Second child node (the title tag Element) of the first book node, which is a list
Books[0].childnodes[1].childnodes: [<dom Text node "u ' learing ma ' ...";]
#Books[0].childnodes[1].childnodes[0]: The first element of the child node (text node-list) of the Second child node (title tag Element) of the first book node
Books[0].childnodes[1].childnodes[0]: <dom Text node "u ' learing ma ' ..." >
#Books[0].childnodes[1].childnodes[0].data: is the value of the first element of the second child node (title tag Element) of the first book node (text node-list)
Books[0].childnodes[1].childnodes[0].data:learing Math
#books [0].childnodes[1].childnodes[1]: The second element of the child node (text node-list) of the Second child node (the title tag Element) of the first book node is attempted, but the error is that there is only one element in the list
BOOKS[0].CHILDNODES[1].CHILDNODES[1]:
Traceback (most recent):
File "task_test.py", line +, in <module>
Print "books[0].childnodes[1].childnodes[1]:", books[0].childnodes[1].childnodes[1]
Indexerror:list index out of range
From this we know that
All. End with childnodes, the result is a list
The result is a node element that ends with a childnodes[i].
C:\python27\scripts>python task_test.py
<dom element:booklist at 0x28854b8>
******************************
books: [<dom element:book at 0x28855d0>, <dom Element:book at 0x2885990>]
books[0].childnodes: [<dom text node "U ' \ n '"), <dom element:title at 0x28856e8>, <dom Text nod E "U ' \ n '", <dom element:title at 0x2885788>, <dom Text node "U ' \ n '";, <dom Element:au Thor at 0x2885828>, <dom text node "U ' \ n '", <dom element:pagenumber at 0x28858c8>, <dom Text N Ode "U ' \ n '";
books[0].childnodes[1]: <dom element:title at 0x28856e8>
books[0].childnodes[1].childnodes: [<dom Text node "u ' learing ma ' ...";]
Books[0].childnodes[1].childnodes[0]: <dom Text node "u ' learing ma ' ..." >
books[0].childnodes[1].childnodes[0].data:learing Math
Books[0].childnodes[1].childnodes[1]:
Traceback (most recent):
File "task_test.py", line +, in <module>
print "books[0].childnodes[1].childnodes[1]:", books[0].childnodes[1].childnodes[1]
Indexerror:list Index out of range
Python XML Childnodes,childnodes[1].childnodes[0].data Example