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


当然,我可以提供一个使用Python标准库`xml.dom`来解析XML的实例代码。这里,我将使用`xml.dom.minidom`模块,它是`xml.dom`的一个实现,提供了简单的API来解析和创建XML文档。

以下是一个简单的例子,它加载一个XML文件,然后遍历DOM树来提取并打印一些信息:


from xml.dom import minidom

# 假设我们有如下的XML文件内容,这里直接以字符串形式表示
xml_str = """
<books>
    <book>
        <title>Learning Python</title>
        <author>Mark Lutz</author>
    </book>
    <book>
        <title>Effective Python</title>
        <author>Brett Slatkin</author>
    </book>
</books>
"""

# 使用minidom解析XML字符串(如果是文件,可以使用minidom.parse(filename))
dom = minidom.parseString(xml_str)

# 获取根元素
books = dom.documentElement

# 遍历所有的book元素
for book in books.getElementsByTagName('book'):
    title = book.getElementsByTagName('title')[0]
    author = book.getElementsByTagName('author')[0]
    
    # 打印书名和作者
    print(f"Title: {title.firstChild.data}")
    print(f"Author: {author.firstChild.data}")
    print("----------")

这段代码首先导入了`minidom`模块,然后定义了一个XML字符串作为示例。在实际应用中,你可能会从文件读取XML数据。我们使用`parseString`函数来解析这个XML字符串,然后获取根元素(在这个例子中是``)。接下来,我们遍历所有的``元素,并使用`getElementsByTagName`方法来获取每个``下的``和`<author>`元素。最后,我们打印出书名和作者。</p><p>请注意,这个示例使用的是XML字符串,但如果你有一个XML文件,你可以使用`minidom.parse(filename)`来替代`parseString`方法,其中`filename`是你的XML文件的路径。</p> </div> </div> </div> </div> <div class="row"> <div class="card card-body"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8670312724662002" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-8670312724662002" data-ad-slot="5669508194"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> </div> <hr> <footer class="card" style="position:relative;bottom:0;width:100%;"> <div style="background-color: #e9ecef;padding-top: 20px;"> <div class="container"> <div class="copyright">Copyright © 2024 www.d2tu.com <a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">皖ICP备2023005503号-1</a> <a href="https://www.d2tu.com/sitemap.xml" target="_blank">XML地图</a> </div> <p>QQ邮箱: <b>664032890</b></p> </div> </div> </footer> <script src="/static/js/jquery.min.js"></script> <script src="/static/js/bootstrap.min.js"></script> <script src="/ziyuan/js/prism.js"></script> </body> </html>