为什么xroot.iter()可以打印XPath,但是不能作为Python中XPath的列表返回?

时间:2019-12-23 09:05:07

标签: python xml elementtree

我的XML文件:

<root xmlns:h="http://www.w3.org/TR/html4/"
xmlns:f="https://www.w3schools.com/furniture">

<h:table>
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table>
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>

</root>

以下代码输出仅返回xmlns链接。

def loopGroup(xml_file,df_cols):

    ndf=pd.DataFrame()
    xtree = et.parse(xml_file)
    xroot = xtree.getroot()
    out_xml = pd.DataFrame(columns=df_cols)

    for node in xroot.iter():
        data=node.tag,node.attrib
        return data

但是,如果我更改为以下代码:

for node in xroot.iter():
    data=node.tag,node.attrib
    print(data)

它将打印如下(我的预期输出):

    ('root', {})
('{http://www.w3.org/TR/html4/}table', {})
('{http://www.w3.org/TR/html4/}tr', {})
('{http://www.w3.org/TR/html4/}td', {})

如何将这些预期的输出转换为csv?

0 个答案:

没有答案