from lxml import etree
class XmlData(object):
# 通过xpath获取指定xml信息
def get_xml_by_xpath(self, str_xmldata, xpath_node):
"""
从XML字符串中,根据xpath 获取指定节点信息
str_xmldata:string类型的XML字符串
xpath_node:节点使用xpath定位
"""
list_result = []
try:
# 将string类型的xml数据转化为xml格式
xml_data = etree.XML(str_xmldata)
list_result = xml_data.xpath(xpath_node)
return list_result
except Exception as e:
log.error("XML-通过xpath获取指定节点信息错误,错误原因:" + str(e))
return list_result
if __name__ == '__main__':
str_xml = """
<soap:Envelope xmlns:soap="http://baidu.com/">
<soap:Body>
<ns1:custsearch xmlns:ns1="webservice.cust.com">
<resData>{"customerIdList":[],"customerList":["a1","b2","c3","d4","e5","f6"],"firstResult":1,"maxResults":11,"status":true}</resData>
</ns1:custsearch>
</soap:Body>
</soap:Envelope>
"""
list_data = XmlData.get_xml_by_xpath(str_xml, "//resData/text()")
print(list_data)
推荐我看过的优秀博客
1》xpath元素定位:https://www.cnblogs.com/it-tsz/p/8899161.html
2》xml节点增删改查,存储xml文件:lxml / dom.minidom 读写XML字符 | Python - PythonicPG - 博客园 (cnblogs.com) |