有没有可能加载一个xml文件,用Python导入另一个xml文件元素树.parse? 在
例如: 我有档案测试.xml其中包括:
<TestXml>
<!DOCTYPE doc [
<!ENTITY otherFile SYSTEM "test_1.xml">
]>
</TestXml>
我还有test_1.xml,其中包含:
^{pr2}$我想装东西测试.xml在我的python脚本中:
from xml.etree.ElementTree import parse
a = parse('test.xml')
print a.find('test').text
我希望它能输出:
it works!
但是我有:
Traceback (most recent call last):
File "D:/Work/depot/WIP/olex/Python/test/test.py", line 3, in <module>
a = parse('test.xml')
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1182, in parse
tree.parse(source, parser)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 656, in parse
parser.feed(data)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1642, in feed
self._raiseerror(v)
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1506, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 2, column 6
有人知道我做错了什么吗?还是不可能为python ElementTree解析器加载这样一个xml文件?在
您遇到的具体问题是xml格式不正确。您的
DOCTYPE
声明不应在根元素内。相反,它应该位于根元素之前:也就是说,一旦你解决了这个问题,你将面临一个更大的问题。如何使用Python解析DOCTYPE声明?您应该使用
xml
模块、lxml
模块还是bs4
模块?在这是个棘手的问题。据我所见,人们(最近)不得不自己进行dtd解析。请参阅SO线程here和here以获取一些可能的线索。在
相关问题 更多 >
编程相关推荐