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>
>>>