【问题标题】:Creating an XML file in python nodes are missing缺少在 python 节点中创建 XML 文件
【发布时间】:2019-05-24 08:00:40
【问题描述】:

我想用 elementtree 库创建一个 XML 文件。

XML 文件应如下所示:

<files>
    <file>
        <ans>EP16</ans>
        <ep></ep>
        <date>2017-03-15</date>
        <concepts>~what</concepts>
    </file>
    <file>
        <ans>EP17</ans>
        <ep>ep6665</ep>
        <date>2017-03-15</date>
        <concepts>~whatever</concepts>
     </file>
     etc
</files>

我尝试通过以下方式进行:

import xml.etree.ElementTree as ET
XMLfiles = ET.Element("files")
file= ET.SubElement(XMLfiles, "file")


nrofrows=dffiles.shape[0]
for i in range(nrofrows):
    serie=dffiles.iloc[i]
    child1=ET.SubElement(file, "an")
    child1.text=serie[0]
    child2=ET.SubElement(file, "ep")
    child2.text=serie[1]
    child3=ET.SubElement(file, "date")
    child3.text=serie[2]
    child4=ET.SubElement(file, "concepts")
    child4.text=serie[3]

保存文件:

tree2 = ET.ElementTree(XMLfiles)
filetosave=os.path.join('00DATA_output','bb.xml')
tree2.write(filetosave)

创建了一个 XML 文件,但它跳过了每个文件的关闭。创建的 xml 文件开头为:

<files>
    <file>
        <ans>EP16</ans>
        <ep></ep>
        <date>2017-03-15</date>
        <concepts>~what</concepts>
   ... ***** closing and open <file> is missing
        <ans>EP17</ans>
        <ep>ep6665</ep>
        <date>2017-03-15</date>
        <concepts>~whatever</concepts>
    </file>
</files>

每次打开和关闭文件的代码中缺少什么? 注意:假设被解析的df是ok的,serie就是一行df。

【问题讨论】:

    标签: python xml pandas elementtree


    【解决方案1】:

    如果您希望 dffiles 事物中的每一行都有一个 &lt;file&gt; 标记,请将其也移到循环内。

    nrofrows = dffiles.shape[0]
    for i in range(nrofrows):
        file = ET.SubElement(XMLfiles, "file")
        serie = dffiles.iloc[i]
        child1 = ET.SubElement(file, "an")
        child1.text = serie[0]
        child2 = ET.SubElement(file, "ep")
        child2.text = serie[1]
        child3 = ET.SubElement(file, "date")
        child3.text = serie[2]
        child4 = ET.SubElement(file, "concepts")
        child4.text = serie[3]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2018-11-02
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多