String lezen van een bestand of een variabele
from xml.dom.minidom import parse, parseString
dom1 = parse(’c:\\temp\\mydata.xml’) # parse an XML file by name
datasource = open(’c:\\temp\\mydata.xml’)
dom2 = parse(datasource) # parse an open filedom3 = parseString(’
Some data ‘)some more data
Het is mogelijk om dom (document) object aanmaken met getDOMImplementation
from xml.dom.minidom import getDOMImplementation
impl = getDOMImplementation()
newdoc = impl.createDocument(None, “some_tag”, None)
top_element = newdoc.documentElement
text = newdoc.createTextNode(’Some textual content.’)
top_element.appendChild(text)
Als een document object aangemaakt is kunnen alle functies gebruikt worden die in DOM gespecificeerd zijn.
Voorbeeld:
import xml.dom.minidom
document = """\
<slideshow>
<title>Demo slideshow</title>
<slide><title>Slide title</title>
<point>This is a demo</point>
<point>Of a program for processing slides</point>
</slide><slide><title>Another demo slide</title>
<point>It is important</point>
<point>To have more than</point>
<point>one slide</point>
</slide>
</slideshow>
"""dom = xml.dom.minidom.parseString(document)
def getText(nodelist):
rc = ""
for node in nodelist:
if node.nodeType == node.TEXT_NODE:
rc = rc + node.data
return rcdef handleSlideshow(slideshow):
print "<html>"
handleSlideshowTitle(slideshow.getElementsByTagName("title")[0])
slides = slideshow.getElementsByTagName("slide")
handleToc(slides)
handleSlides(slides)
print "</html>"def handleSlides(slides):
for slide in slides:
handleSlide(slide)def handleSlide(slide):
handleSlideTitle(slide.getElementsByTagName("title")[0])
handlePoints(slide.getElementsByTagName("point"))def handleSlideshowTitle(title):
print "<title>%s</title>" % getText(title.childNodes)def handleSlideTitle(title):
print "<h2>%s</h2>" % getText(title.childNodes)def handlePoints(points):
print "<ul>"
for point in points:
handlePoint(point)
print "</ul>"def handlePoint(point):
print "<li>%s</li>" % getText(point.childNodes)def handleToc(slides):
for slide in slides:
title = slide.getElementsByTagName("title")[0]
print "<p>%s</p>" % getText(title.childNodes)handleSlideshow(dom)
http://docs.python.org/lib/module-xml.dom.minidom.html
Add A Comment
You must be logged in to post a comment.
