如何提取XML值并将其存储在CSV中,没有XML标记?

时间:2017-09-12 13:45:45

标签: python-2.7 xml-parsing elementtree

我正在尝试从XML中提取ID值并将其保存为CSV文件。 XML看起来像这样:

<?xml version="1.0" encoding="utf-8" ?>
<YourMembership_Response>
    <Items>
        <Item>
            <ItemID></ItemID>
            <ID>92304823A-2932</ID>
            <WebsiteID>0987</WebsiteID>
            <NamePrefix></NamePrefix>
            <FirstName>John</FirstName>
            <MiddleName></MiddleName>
            <LastName>Smith</LastName>
            <Suffix></Suffix>
            <Nickname></Nickname>
            <EmployerName>abc company</EmployerName>
            <WorkTitle>manager</WorkTitle>
            <Date>3/14/2013 2:12:39 PM</Date>
            <Description>Removed from group by Administration.</Description>
        </Item>
        <Item>
            <ItemID></ItemID>
            <ID>92304823A-2932</ID>
            <WebsiteID>0987</WebsiteID>
            <NamePrefix></NamePrefix>
            <FirstName>John</FirstName>
            <MiddleName></MiddleName>
            <LastName>Smith</LastName>
            <Suffix></Suffix>
            <Nickname></Nickname>
            <EmployerName>abc company</EmployerName>
            <WorkTitle>manager</WorkTitle>
            <Date>3/14/2013 2:12:39 PM</Date>
            <Description>Removed from group by Administration.</Description>
        </Item>

我已经能够使用以下内容解析ID的API响应:

ID = tree.find('.//ID').text
print ID

只能给我一个ID,例如92304823A-2932

我希望能够遍历ID标记以提取所有ID

这是我尝试过的,我不确定我做错了什么,但我甚至没有收到错误消息。

for node in tree.find('.//ID'):
    ID = tree.find('.//ID').text
    print ID

其次,我不确定是否可以在同一ID循环中将for写入CSV。

从高层次来看,我的问题是如何遍历XML中的所有ID标记,然后如何将这些ID写入CSV?

如果我的问题没有意义,请告诉我。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

这段代码对我有用:

with open("output1.csv", "wb") as f:
    writer = csv.writer(f)
    for node in tree.findall('.//ID'):
        writer.writerow([u' '.join(node.text).encode('utf8').strip()])