Python XML文件打开

2024-10-01 02:30:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图打开一个xml文件并对其进行解析,但是当我试图打开它时,这个文件似乎从来没有打开过,它只是一直在运行,有什么想法吗?

from xml.dom import minidom
Test_file = open('C::/test_file.xml','r')
xmldoc = minidom.parse(Test_file)

Test_file.close()

for i in xmldoc:
     print('test')

文件大小为180.288kb,为什么它永远无法到达打印部分?


Tags: 文件infromtestimportforcloseparse
1条回答
网友
1楼 · 发布于 2024-10-01 02:30:53

通过一些调整运行Python代码:

from xml.dom import minidom
Test_file = open('C:/test_file.xml','r')
xmldoc = minidom.parse(Test_file)

Test_file.close()

def printNode(node):
  print node
  for child in node.childNodes:
       printNode(child)

printNode(xmldoc.documentElement)

此示例输入为test_file.xml:

<a>
  <b>testing 1</b>
  <c>testing 2</c>
</a>

产生此输出:

<DOM Element: a at 0xbc56e8>
<DOM Text node "u'\n  '">
<DOM Element: b at 0xbc5788>
<DOM Text node "u'testing 1'">
<DOM Text node "u'\n  '">
<DOM Element: c at 0xbc5828>
<DOM Text node "u'testing 2'">
<DOM Text node "u'\n'">

注意:

  • 正如@LukeWoodward所提到的,对于大的输入,避免使用基于DOM的库,不过180K应该没问题。对于180M,如果不首先耗尽内存(MemoryError),控件可能永远不会从minidom.parse()返回。
  • 正如@alecxe所提到的,您应该在文件规范中消除多余的“:”。您应该看到沿着IOError: [Errno 22] invalid mode ('r') or filename: 'C::/test_file.xml'行的错误输出。
  • 正如@mzjn提到的,xml.dom.minidom.Document是不可接受的。您应该已经看到了沿着TypeError: iteration over non-sequence行的错误输出。

相关问题 更多 >