zoukankan      html  css  js  c++  java
  • python xml DOM 解析例子

    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.append(node.data)
        return ''.join(rc)
    
    def 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)

    运行结果:

    <html>
    <title>Demo slideshow</title>
    <p>Slide title</p>
    <p>Another demo slide</p>
    <h2>Slide title</h2>
    <ul>
    <li>This is a demo</li>
    <li>Of a program for processing slides</li>
    </ul>
    <h2>Another demo slide</h2>
    <ul>
    <li>It is important</li>
    <li>To have more than</li>
    <li>one slide</li>
    </ul>
    </html>

  • 相关阅读:
    windows 环境下在anaconda 3中安装python2和python3两个环境(python2和python3共存)
    python 中,如何在一个函数中调用另一个函数返回的多个值中的一个?
    Coursera 机器学习 第一周 学习笔记
    正则表达式 注释
    正则表达式 分组
    24_04SpringMVC实现文件上传及拦截器
    前端之CSS基础
    前端之html
    MySQL数据库实战之优酷
    数据库基础加练习
  • 原文地址:https://www.cnblogs.com/hzhida/p/2655768.html
Copyright © 2011-2022 走看看