2017-06-12 6 views
-2
<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child1> 
     <details id="1"> 
     <name ab="1">Ram</name> 
     <age ab="2">45</age> 
     <phone> 
      <phone1>777777777</phone1> 
     </phone>  
    </child1>  
     </details> 
    <child2> 
     <details id="2"> 
      <name ab="3">kiran</name> 
      <age ab="4">57</name> 
      <phone> 
       <phone1>888888888</phone1> 
      </phone>  
     </details> 
    <child2> 
</parent> 

を読み取る、Pythonは私は入力2を与えられた場合、それはchild2のつまりの詳細を返す必要があり、XML内タグ

O/Pは

詳細であるべきであるID = "2"

名前ab 3 kiran年齢ab 4 57電話888888888888

入力1を指定すると、child1の詳細などを返す必要があります。

+0

宿題?または割り当て? –

+0

オートメーションに関連した譲渡 –

+0

Stackoverflowへようこそ!自分でコードを作成してから、エラーが発生していない、またはエラーが発生した場合は、ここに戻ってください。 Stackoverflowはコードを書くサービスではありません。 – nikpod

答えて

0

あなたはこれを試すことができます。

import xml.etree.ElementTree as ET 

my_xml = 'some_xml.xml' 

tree = ET.parse(my_xml) 

root = tree.getroot() 

id = str(input('Enter id: ')) 

for element in root: 
if element.tag == 'child' + id: 
    details = element.find('details') 
    for detail in details: 
     if detail.tag == 'phone': 
      continue 
     else: 
      print('{} : {}'.format(detail.tag, detail.text)) 
    phones = details.find('phone') 
    for phone in phones: 
     print('{} : {}'.format(phone.tag, phone.text)) 

XMLは、あなたのPythonコードと同じディレクトリにあるファイルsome_xml.xmlです。ところで、あなたのXMLファイルは正しくありません。これは次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<parent> 
    <child1> 
     <details id="1"> 
     <name ab="1">Ram</name> 
     <age ab="2">45</age> 
     <phone> 
      <phone1>777777777</phone1> 
     </phone>  
     </details> 
    </child1>  
    <child2> 
     <details id="2"> 
      <name ab="3">kiran</name> 
      <age ab="4">57</age> 
      <phone> 
       <phone1>888888888</phone1> 
      </phone>  
     </details> 
    </child2> 
</parent> 

あなたの問題を修正して正常に動作するはずです。

xml.etree.ElementTreeモジュールは、ドキュメントに記載されているように、悪意を持って構築されたデータに対して安全ではありません。

+0

私はこのようにしようとしましたが、入力内容が1の場合 ....の内容をすべて取得できますか? –

+0

@Sudharshjasmine回答を編集しました。それは動作するはずです。 – Nurjan

関連する問題