2017-09-27 5 views
0

私はlxml.etreeを使用します。Python。どのように具体的なタグを持つXMLファイルからすべての要素を取得するには?

<Company> 
    <Employee> 
     <FirstName>Tanmay</FirstName> 
     <LastName>Patil</LastName> 
     <Valod> 
      <Person Name="Jack"></Person> 
     </Valod> 
     <ContactNo>1234567890</ContactNo> 
     <Email>[email protected]</Email> 
     <Address> 
      <City>Bangalore</City> 
      <State>Karnataka</State> 
      <Zip>560212</Zip> 
      <Room> 
       <Person Name="Bill"></Person> 
       <Person Name="John"></Person> 
      </Room> 
     </Address> 
    </Employee> 
</Company> 

検索の結果、私はすべての「人物」をしたい:

は、例えば、私はこのようなxmlファイルを持っています。要素を返す 'element.getAll(' 人 ')' のような 何か:あなたはXPathを

https://docs.python.org/2/library/xml.etree.elementtree.html#elementtree-xpath

を使用することができます

<Person Name="Jack"></Person> 
<Person Name="Bill"></Person> 
<Person Name="John"></Person> 

答えて

1

それはおそらくrootElementTreeある root.findall("//Person")のようなものになります//はすべての子を即時に見つけるか、Personがノード名です。

+0

私は試してみましたが、結果は返されません。 –

+0

何が起こっているのかを知るには、コードとXMLの例を参照する必要があります。 –

+0

O、私はそれを修正すると思います。常にタグ名の前に名前空間を追加する必要があります。 .findall( ".// {namespace} Person")や.findall( ".// prefix:Person"、namespaces_with_prefix)のように、 –

1

thisあなたが必要とするものを正確に示す公式のPythonサイトからチュートリアルをチェックしてください。

import xml.etree.ElementTree as ET 
tree = ET.parse('person.xml') 
root = tree.getroot() 
for person in root.findall('Person'): 
    do something 
関連する問題