玩蛇网提供最新Python编程技术信息以及Python资源下载!

Python如何实现lxml读取、更新、写入标签值操作

<?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文件中。请问该如何操作?

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)

玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd19469.html

相关文章 Recommend

玩蛇网Python互助QQ群,欢迎加入-->: 106381465 玩蛇网Python新手群
修订日期:2017年05月12日 - 17时58分52秒 发布自玩蛇网

您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:

必知PYTHON教程 Must Know PYTHON Tutorials

必知PYTHON模块 Must Know PYTHON Modules