2010-11-04 56 views
0

我只是想解决一个简单的方法,打开,编辑和保存使用python的xml文件。python的简单XML?

到目前为止,我已经设法打开一个文件并将其写入输出。

我还没有设法轻松打印出来,以便我知道任何给定对象中的内容,遍历对象模型,编辑标记和属性,或者将xml写入文件。

from lxml import etree 
root = etree.parse('test.xml') 

print etree.tostring(root); 

我习惯于使用simpleXML for php,这是一件轻而易举的事情。

请帮助,因为我发现的文档难以理解:(

谢谢:)

+0

-1这不是问题。一个问题就像“我如何[特定的东西]?我尝试了X,但Y没有工作/我得到了错误消息Z.”。而FYI,lxml *是Python最好最简单的XML库。我真的不知道你会得到什么答案... – delnan 2010-11-04 19:05:14

+0

我希望能够快速简单地解释如何使用xml来做到这一点,或者更好的选择。 simpleXML在PHP中简单地把DOM当作一个对象来对待(这也是一个漂亮的事情)。但是我无法找到一个简单的方法来打开,编辑和保存xml文件,尽管在lxml文档中做了很好的尝试。对不起,问题不是更具体! – significance 2010-11-04 19:10:18

+0

我已经更新了我的答案。 – user225312 2010-11-04 19:17:50

回答

4

的LXML教程是好的,易于理解。看看here并试试看。过去需要一些时间,但与所有情况一样,最初的步骤很困难。

另一个优秀的教程(和参考)我推荐的教程是John Shipman。你应该认真地给它一个阅读。

我推荐:阅读教程和Shipman的书。然后尝试解析简单的XML文件。

lxml值得借鉴。一旦你确实了解它,你就会喜欢它。 PS:我所说的全部是基于我个人的经验。

编辑:根据你的评论,你应该使用this,而不是lxml。 Here是一个易于理解的教程。

+0

DOM一般来说是非常笨拙的,Python实现与ElementTree的实现相比是双倍的... – delnan 2010-11-04 19:20:38

+0

@delnan:我建议lxml,但他似乎厌恶它。 – user225312 2010-11-04 19:23:41

+0

是的,lxml要容易得多。我同意。 – user225312 2010-11-04 19:27:41

2

给一个尝试Amara,这是非常简单的:

import amara 
doc = amara.parse('monty.xml') 
doc.monty.foo = u'bar' 
doc.monty.spam = u'[attr modified]' 
print doc.monty.foo 
+0

这实际上可能是我正在寻找...你知道如何将修改后的xml写回monty.xml吗? – significance 2010-11-04 21:55:05

+0

doc.xml(open('monty.xml','w')) – 2010-11-07 18:57:28