无论XML文件根目录是什么,总是显示为无原因


from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element
import xml.etree.ElementTree as etree
tree= etree.parse(r'N:myinternworkfiles xml of bus systemssample.xml','r')
root= tree.getroot()
print(root)

您没有解析文件sample.xml,因为您提供的第二个参数('r'(,如果您这样做,例如:

tree= etree.parse(open(r'N:myinternworkfiles xml of bus systemssample.xml','r'))

tree= etree.parse(r'N:myinternworkfiles xml of bus systemssample.xml')

根据xml文档:

xml.etree.ElementTree.parse(source, parser=None( 将 XML 节分析为元素树。源是包含 XML 数据的文件名或文件对象。解析器是一个可选的解析器实例。如果未给出,则使用标准的 XMLParser 解析器。返回一个元素树实例。

您的代码有两行根本不使用:

from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import Element

更大的问题是它抛出了一个错误:

AttributeError: 'str' object has no attribute 'close'

在 Python 2 和 3 上

因此,您似乎没有运行您在问题中提出的非最小示例代码。

使用文件 /tmp/xx.xml 中 w3schools.com 的示例 1

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

我可以交互式运行它:

$ python
Python 3.6.1 (default, Mar 22 2017, 11:20:29) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import xml.etree.ElementTree as etree
>>> tree = etree.parse('/tmp/xx.xml')
>>> print(tree)
<xml.etree.ElementTree.ElementTree object at 0x7ff247570e10>
>>> root = tree.getroot()
>>> print(root)
<Element 'note' at 0x7ff24756d7c8>
>>>