tag = xml.etree.ElementTree.fromstring(xml_str)
print "find a-----------------------------------------------------"
find_tag = tag.findall("a") #自己是搜索不到
print find_tag
print
find_tag = tag.findall("*") #找打text为1,2的b和C
print find_tag
print "find b-----------------------------------------------------"
find_tag = tag.findall("b") #找到 text 为 1,2的b
print find_tag
for item in find_tag:
print item,item.text
print
find_tag = tag.findall(".//b") #找到 text 为 1,2,3,4,5,6 的b
print find_tag
for item in find_tag:
print item,item.text
print "find d-----------------------------------------------------"
find_tag = tag.findall("d") #不是A的子节点,这样搜索不到。
print find_tag
print
find_tag = tag.findall("c/d") #到达d的路径,path不包括当前节点
print find_tag
print
find_tag = tag.findall(".//d") #使用.//前缀,从当前节点寻找所有的下方节点
print find_tag
print
print "find path . *-----------------------------------------------------"
tag_c = tag.find(".//c") #从C开始找
find_tag = tag_c.findall(".//b") ##找C下面所有层次找b,找到 text 为 3,4,5,6 的b
print find_tag
for item in find_tag:
print item,item.text
find_tag = tag_c.findall("*/b") #找到C,D下面一层所有tag为b的数据 ,也是找到 text 为 3,4,5,6 的b
print find_tag
for item in find_tag:
print item,item.text
print "xml namespace -----------------------------------------------------"
xml_str="""<a xmlns="http://www.w3.org/TR/html4" >
<b>1</b>
tag = xml.etree.ElementTree.fromstring(xml_str)
find_tag = tag.findall("*") #如果有xml命名空间,那么所有所有的tag都有名字空间的uri,如上这个tag字符串是 {http://www.w3.org/TR/html4}b 而不是b
print find_tag
倒霉的是,这几个暗礁怎么都让我碰上了。
【可以在标明作者和出处的情况下的完整转载,不得用于盈利和商业用途,否则每字1元,每图100,不降价,对百度文库,360doc加价一倍】