嗨,我已经开始学习python了,我想用它来处理XML文件。
我一直在寻找最佳路线的信息,但坦率地说,我有点迷路了。处理XML文件的方法有很多种,比如ElementTree、lxml、minidom等等。有人能给我指出正确的方向吗。或者告诉我一些代码我可以绕着头。我已经开始尝试使用lxml,但还没有进一步打印所有元素。
以下是我要做的:
下面是我的xml结构。下面的两个记录在文件中重复了10000次。
<ThisIsMyData>
<ITEM>
<Number>0</Number>
<Flag1>TRUE</Flag1>
<Flag2>FALSE</Flag2>
<Flag3>FALSE</Flag3>
<Label>RED</Label> <<-2- After finding 1 I need to change THIS(only this)
<Path>C:\\test\\</Path> <-1- I need to find this
<file>test.png</file>
</ITEM>
<ITEM>
<Number>1</Number>
<Flag1>TRUE</Flag1>
<Flag2>FALSE</Flag2>
<Flag3>FALSE</Flag3>
<Label>Blue</Label>
<Path>c:\\test\\test2\\</Path>
<file>blue.png</file>
</ITEM>
</ThisIsMyData>
所以我有一个根: 那么很多元素:。 每一个都有7个子元素。
这是我的CSV文件的样子,我需要我的输出看起来像: CSV文件:
^{pr2}$如果布局混乱,请使用Pastebin链接:
http://pastebin.com/embed_js.php?i=QEx2ZGuY
我现在使用这个例子来尝试ElementTree: http://pymotw.com/2/xml/etree/ElementTree/parse.html。我设法在xml中搜索某个元素名并打印其内容。但我仍然看不到在同一级别上找到匹配元素的方法。
from xml.etree import ElementTree
with open('mydata.xml', 'rt') as f:
tree = ElementTree.parse(f)
# filelist = ElementTree.ElementTree.find()
for node in tree.findall('.//file'):
FileName = node.tag, node.text
print FileName
输出:
('file', 'test.png')
('file', 'blue.png')
首先使用python csv模块从csv文件中获取数据。如果数据不是很大,字符串分割就可以正常工作。在
而不是使用
etree.XML
创建xml。在示例:
提取
csv_value
留给您作为练习。在还有take a look at this question。在
下面是一个简单的例子,说明如何使用
lxml.etree
和xpath
来完成我认为您想要的操作。在收益率
^{pr2}$我发现BeautifulSoup和它的姐妹,Beautiful Stone Soup,有非常好的、简洁的、基于示例的文档,有助于深入研究和尝试真实世界的示例。在
但是,我也听说,ElementTree被一些人认为是python中的黄金标准。在
相关问题 更多 >
编程相关推荐