python - lxml读取标签的值更新并写入
伊谢尔伦
伊谢尔伦 2017-04-17 13:22:23
[Python讨论组]
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<lastmod>2014-08-26</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
<data>
<display>
<name>zhongguo</name>
<address>zhongguo</address>
<search>http://www.sohu.com</search>
</display>
</data>
</url>
<url>
<lastmod>2014-08-26</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
<data>
<display>
<name>中国</name>
<address>中国</address>
<search>http://www.abc.com</search>
</display>
</data>
</url>
</urlset>

我现在的需求是想将中的网址改成另一个网址并写入,比如将第一条url结果的”http://www.sohu.com“改成“http://www.sina.com”并写入xml文件中。请问该如何操作?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(1)
伊谢尔伦

lxml里面Element对象有个find的方法,先找到对应的path,然后修改就好了

# -*- coding: utf-8 -*- 

from lxml import etree

xml_string = u"""
<?xml version="1.0" encoding="UTF-8"?>
<urlset>
<url>
<lastmod>2014-08-26</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
<data>
<display>
<name>zhongguo</name>


<address>zhongguo</address>


<search>http://www.sohu.com</search>
</display>
</data>
</url>
<url>
<lastmod>2014-08-26</lastmod>
<changefreq>always</changefreq>
<priority>1.0</priority>
<data>
<display>
<name>中国</name>


<address>中国</address>


<search>http://www.abc.com</search>
</display>
</data>
</url>
</urlset>
"""

root = etree.fromstring(xml_string)
for url in root:
    url_tag = url.find("data/display/search")
    if url_tag.text == "http://www.sohu.com":
        url_tag.text = "http://www.sina.com"
print etree.tostring(root)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号