Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erläuterung der Beispiele für das Parsen von Python-XML

Detaillierte Erläuterung der Beispiele für das Parsen von Python-XML

黄舟
Freigeben: 2016-12-14 18:00:33
Original
1544 Leute haben es durchsucht

Python-XML-Parsing

first.xml

<info> 
<person > 
<id>1</id> 
<name>fsy</name> 
<age >24</age> 
</person> 
<person> 
<id>2</id> 
<name>jianjian</name> 
<age>24</age> 
</person> 
<count id =&#39;1&#39;>1000</count> 
</info>
Nach dem Login kopieren

aus xml.etree importieren ElementTree als etree

Einlesen

def read_xml(file): 
# parse()函数会返回一个能代表整篇文档的对象。这不是根元素。要获得根元素的引用可以调用getroot()方法。 
tree = etree.parse(file) 
root = tree.getroot() 
return root
Nach dem Login kopieren

Informationen erhalten

def print_node(node): 
&#39;&#39;&#39;&#39;&#39;打印结点基本信息&#39;&#39;&#39; 
print("node.tag:%s" % node.tag) 
print("node.attrib:%s"%node.attrib) 
print( "node.text:%s" % node.text)
Nach dem Login kopieren

Suche:

find_all 
>>> root = read_xml (&#39;first.xml&#39;)   
>>> res = root.findall("person") 
[<Element &#39;person&#39; at 0x00000000033388B8>, <Element &#39;person&#39; at 0x0000000003413D68>] 
   
注意:findall只查询直接的子节点 
>>> r1 = root.findall("id") 
>>> r1 
[] 
>>> r =tree.findall(".//id") 
>>> for e in r: 
  print( e,e.text) 
      
<Element &#39;id&#39; at 0x00000000034279F8> 1 
<Element &#39;id&#39; at 0x0000000003427B38> 2
Nach dem Login kopieren

finden:

#find()方法用来返回第一个匹配到的元素。当我们认为只会有一个匹配,或者有多个匹配但我们只关心第一个的时候,这个方法是很有用的。 
>>> res[0].find("id") 
<Element &#39;id&#39; at 0x0000000003413CC8> 
>>> print_node(res[0].find("id")) 
node.tag:id 
node.attrib:{} 
node.text:1
Nach dem Login kopieren

find failed:

Beachten Sie bei der Verwendung von find, dass in einem booleschen Kontext das ElementTree-Elementobjekt als False betrachtet wird, wenn es keine untergeordneten Elemente enthält (d. h. wenn len(element) ist gleich 0). Das heißt wenn element.find('...') testet nicht, ob die find()-Methode eine Übereinstimmung gefunden hat; diese Anweisung testet, ob das übereinstimmende Element untergeordnete Elemente enthält. Wenn Sie testen möchten, ob die Methode find() ein Element zurückgibt, müssen Sie if verwenden element.find('...') ist nicht None.

>>> bk = res[0].find("no") 
>>> bk 
>>> type(bk) 
<class &#39;NoneType&#39;> 
>>> res[0].find("id") 
<Element &#39;id&#39; at 0x0000000003413CC8> 
>>> if res[0].find("id"): 
    print("find") 
  else: 
    print("not find") 
not find 
>>> if res[0].find("id") is not None: 
    print("find") 
  else: 
    print("not find") 
find
Nach dem Login kopieren

Das Obige ist eine detaillierte Erklärung der Python-XML-Parsing-Beispiele. Ich hoffe, es kann allen helfen. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website. www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage