第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用python創(chuàng)建一個簡單的xml文件

使用python創(chuàng)建一個簡單的xml文件

慕桂英3389331 2019-07-10 10:26:35
使用python創(chuàng)建一個簡單的xml文件如果我想在python中創(chuàng)建一個簡單的XML文件,我的選擇是什么?(圖書館方面)我想要的XML看起來像:<root>  <doc>      <field1 name="blah">some value1</field1>      <field2 name="asdfasd">some vlaue2</field2>  </doc></root>
查看完整描述

3 回答

?
楊魅力

TA貢獻1811條經(jīng)驗 獲得超6個贊

現(xiàn)在,最受歡迎(也非常簡單)的選項是元素樹API,它從Python2.5開始就包含在標準庫中。

可供選擇的辦法如下:

  • ElementTree(ElementTree的基本、純Python實現(xiàn))標準庫的一部分,自2.5以來)
  • cElementTree(ElementTree的優(yōu)化C實現(xiàn))。從2.5開始也在標準庫中提供)
  • LXML(基于libxml 2)。提供了豐富的ElementTreeAPI超集,以及XPath、CSS選擇器等等)

下面是如何使用in-stdlib cElementTree生成示例文檔的示例:

import xml.etree.cElementTree as ET

root = ET.Element("root")doc = ET.SubElement(root, "doc")ET.SubElement(doc, "field1", name="blah").text = "some value1"
ET.SubElement(doc, "field2", name="asdfasd").text = "some vlaue2"tree = ET.ElementTree(root)tree.write("filename.xml")

我已經(jīng)測試過它了,它可以工作,但我假設空白并不顯著。如果您需要“prettyprint”縮進,請告訴我,我將查找如何做到這一點。(它可能是一個特定于LXML的選項。我不常使用stdlib實現(xiàn))

為了進一步閱讀,這里有一些有用的鏈接:

最后要注意的是,cElementTree或LXML應該足夠快,以滿足您的所有需求(都是優(yōu)化的C代碼),但是如果您需要擠出最后一點性能,LXML站點上的基準測試表明:

  • LXML顯然是序列化(生成)XML的贏家
  • 作為實現(xiàn)正確的父遍歷的副作用,LXML在解析方面比cElementTree慢一些。


查看完整回答
反對 回復 2019-07-10
?
墨色風雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

這個lxml庫包含一個非常方便的xml生成語法,稱為電子工廠..下面是我給出的例子:

#!/usr/bin/pythonimport lxml.etreeimport lxml.builder    

E = lxml.builder.ElementMaker()ROOT = E.root
DOC = E.doc
FIELD1 = E.field1
FIELD2 = E.field2

the_doc = ROOT(
        DOC(
            FIELD1('some value1', name='blah'),
            FIELD2('some value2', name='asdfasd'),
            )   
        )   print lxml.etree.tostring(the_doc, pretty_print=True)

產(chǎn)出:

<root>
  <doc>
    <field1 name="blah">some value1</field1>
    <field2 name="asdfasd">some value2</field2>
  </doc></root>

它還支持向已經(jīng)生成的節(jié)點添加內(nèi)容,例如,在上面您可以這樣說之后。

the_doc.append(FIELD2('another value again', name='hithere'))


查看完整回答
反對 回復 2019-07-10
  • 3 回答
  • 0 關注
  • 2549 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號