getxml.py
by
admin
—
last modified
2007-05-17 10:59
Besvarelse af spørgsmål på http://www.eksperten.dk/spm/778231
Size 1.4 kB - File type text/python-sourceFile contents
#!usr/bin/python
# -*- coding: UTF-8 -*-
# File: getxml.py
"""
Jeg har et xml-dok med x antal items - nogenlunde som dette
<item>
<Titel>Titel</titel>
<description>Beskrivelse</description>
</item>
Er der en der har et bud på hvordan jeg i asp laver en parser
der udvælger og returnerer data fra et tilfældigt item
i xml-dokumentet?
"""
import xml.dom.minidom
from xml.dom.minidom import Node
import sys
def getData( N ):
"""Take node N and extract data from it an return the data"""
Data = ""
for N2 in N:
for N3 in N2.childNodes:
Data += N3.data
return Data
def traverse_dom( nodes, env ):
"""
Get a node name
and traverse it down in a recursive fashion
throug parsed_domain
and return data in a list
"""
Name = nodes.nodeName
# print "Node name", Name, "Type:", nodes.nodeType, "Attrib",nodes.attributes
if nodes.nodeType == Node.TEXT_NODE:
if nodes.data.strip():
env.append( nodes.data )
return
for node in nodes.childNodes:
traverse_dom( node, env )
def readXmlAndParseIt( filename="" ):
try:
xmldoc = xml.dom.minidom.parse( filename )
except:
print "can't parse file % " % filename
env = []
traverse_dom( xmldoc, env=env )
return env
if __name__ == "__main__":
import random
filename = "x.xml"
xmlList = readXmlAndParseIt( filename=filename )
print random.choice( xmlList )
Click here to get the file