Python'解析xml文件,每个dom放一个元素里


"http://www.w3.org/2001/XMLSchema-instance" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd http://www.google.com/schemas/sitemap-image/1.1 http://www.google.com/schemas/sitemap-image/1.1/sitemap-image.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    
        https://www.u9seo.com/356584.html
        2021-05-14T08:54:33+08:00
    
    
        https://www.u9seo.com/356582.html
        2021-05-14T08:53:56+08:00
    
    
        https://www.u9seo.com/356580.html
        2021-05-14T08:53:37+08:00
    
    
        https://www.u9seo.com/356578.html
        2021-05-14T08:53:23+08:00
    
    
        https://www.u9seo.com/356576.html
        2021-05-14T08:52:52+08:00
    
    
        https://www.u9seo.com/356574.html
        2021-05-14T08:52:36+08:00
    

一个url就是一个dom,怎么写呢

可以使用Python中的ElementTree库来解析XML。

首先,我们需要将字符串解析为XML元素对象,可以使用ElementTree库中的fromstring()方法实现。

然后通过ElementTree库中的findall()方法,查找sitemap元素,再通过元素的子元素loc和lastmod获取对应的值。

以下是具体代码实现:

import xml.etree.ElementTree as ET

content = '''<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    <sitemap>
        <loc>https://www.u9seo.com/post-sitemap1.xml</loc>
        <lastmod>2022-10-22T22:04:43+08:00</lastmod>
    </sitemap>
</sitemapindex>'''

# 解析XML
root = ET.fromstring(content)

# 判断是否为sitemapindex类型
if root.tag == '{http://www.sitemaps.org/schemas/sitemap/0.9}sitemapindex':
    # 获取所有子元素sitemap
    sitemaps = root.findall('{http://www.sitemaps.org/schemas/sitemap/0.9}sitemap')
    
    # 遍历获取loc和lastmod值
    for sitemap in sitemaps:
        loc = sitemap.find('{http://www.sitemaps.org/schemas/sitemap/0.9}loc').text
        lastmod = sitemap.find('{http://www.sitemaps.org/schemas/sitemap/0.9}lastmod').text
        
        # 打印测试
        print('loc:', loc)
        print('lastmod:', lastmod)
else:
    print('不是sitemapindex类型')

输出的结果为:

loc: https://www.u9seo.com/post-sitemap1.xml
lastmod: 2022-10-22T22:04:43+08:00

可以看到成功解析初其中的loc和lastmod参数。