2016-10-19 4 views
0
import xml.etree.ElementTree as ET 

var3 = raw_input("Enter the root Element: \n") 
root = ET.Element(var3) 
var4 = raw_input("Enter the sub root Element: \n") 
doc = ET.SubElement(root, var4) 

no_of_rows=input("Enter the number of Element for XML files: - \n") 

def printme(): 

    var = raw_input("Enter Element: - \n") 
    var1 = raw_input("Enter Data: - \n") 

    ET.SubElement(doc, var).text =var1 

    return; 

    for num in range(0, no_of_rows): 
     printme() 

    tree = ET.ElementTree(root) 
    file = raw_input("Enter File Name: - \n") 
    tree.write(file) 

    ET.ElementTree(root).write(file, encoding="utf-8", xml_declaration=True)   
    print "Xml file Created..!!" 

Pythonを使用してxmlを動的に作成したいと考えています。xmlを動的に作成するには?

複数のサブルートを作成するにはどうすればよいですか?


書いた要素をxmlに格納するためにコンソールからファイル名を与えています。このエラーは次のとおりです。

どうすればよいですか?

+0

あなたはすでにxmlファイルを作成しています。何が問題ですか ?より多くの要素を作成するために 'for'ループが必要ですか?または 'ET.parse(" filename.xml ")'ファイルを読み込みますか? – furas

+0

私はコンソールからファイル名を与えてxmlに書かれた要素を格納していますが、 "TypeError:ディスクリプタ 'write'に 'file'オブジェクトが必要ですが、 'str'を受け取っています。私は何をすべきか? –

答えて

0

あなたがそれを使用していないユーザーからの要素の は、ループを使用して、以下に示すように、ループ内のユーザからの要素の詳細を取得:

import xml.etree.ElementTree as ET 
try: 
    no_of_rows=int(input("Enter the number of Element for XML files: - \n")) 
    root = input("Enter the root Element: \n") 
    root_element = ET.Element(root) 
    for _ in range(1, no_of_rows): 
     tag = input("Enter Element: - \n") 
     value = input("Enter Data: - \n")  
     ET.SubElement(root_element, tag).text = value 

    tree = ET.ElementTree(root_element) 
    tree.write("filename.xml") 

    print("Xml file Created..!!") 
except ValueError: 
    print("Value Error") 
except: 
    print("Exception Occuured") 
    enter code here 

私は、これはあなたが達成したいものであると思います。

from lxml import etree 
try: 
    root_text = raw_input("Enter the root Element: \n") 
    root = etree.Element(root_text) 
    child_tag = raw_input("Enter the child tag Element: \n") 
    child_text = raw_input("Enter the child text Element: \n") 
    child = etree.Element(child_text) 
    child.text =child_text 
    root.append(child) 
    with open('file.xml', 'w') as f: 
     f.write(etree.tostring(root)) 
     f.close() 
except ValueError: 
    print("Occured Error") 

をそれとも、動的な長さをしたい場合は、あなただけのforループを使用します。

+0

「例外が発生しました」という例外を示すroot nameを入力した後。どのコードを挿入する必要がありますか? –

+0

@MahaveerBubanale私がここで与えたコードはPython 3のためのもので、あなたはPython 2+を使用しています。 Python 3とPython 2 +の 'input 'には若干の違いがあります。http://stackoverflow.com/questions/4915361/whats-the-difference-between-raw-input-and-input-in-python3-バツ 。自分のコードで 'input'を' raw_input'に変更した場合、例外はスローされません。 – gugaheri

+0

diff操作で同じファイルを変更できますか?そしてどうやって? –

-1

あなたがXMLを作成したい場合はこれを行うことができます。

+0

3行目、1列目に "root_text"が見つかりました。 ""です。エラーが表示されます –

+0

このコードをどこで実行しますか? –

+0

はい、今は大丈夫です。ありがとうございます –

関連する問題