2017-02-24 3 views
0

xmlをビルドして多くの要素を含む文字列を挿入しようとしています。しかし、エラーが発生し、何が間違っているかわからない場合は、XMLコンテンツをタグに挿入するときのPythonエラー

from lxml import etree 
from lxml.builder import E as e 

list = ["one", "two", "three", "four", "five"] 

fields = "".join("<field>{}</field>".format(x) for x in list) 

xml = page = (
e.req(
    e.tab(
    e.fields(
     etree.fromstring(fields) 
    ) 
) 
) 
) 

エラー:

lxml.etree.XMLSyntaxError: Extra content at the end of the document, line 1, column 20 

パイソン(2.7.10) lxmlの(3.7.3)

答えて

1

XMLファイルmust have a single top-level root element、しかし、あなたはリストから解析しようとしています<field> s(読みやすくするため改行を追加):

<field>one</field> 
<field>two</field> 
<field>three</field> 
<field>four</field> 
<field>five</field> 
01あなたはルート要素でそれらをラップする場合

は、それが動作するはずです:

<fields> 
    <field>one</field> 
    <field>two</field> 
    <field>three</field> 
    <field>four</field> 
    <field>five</field> 
</fields> 
+0

おかげで、それが機能するようになりました! – bogumbiker

関連する問題