1

我正在使用 Python 的 elementtree 来解析一些 XML 配置文件。

在文件的顶部,我有一个像这样的根元素:

<?xml version="1.0" encoding="utf-8"?>
<sgx:FooConfig
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:foo="http://ns.au.firm.com/foo.xsd"
  xmlns:bar="http://ns.au.firm.com/bar.xsd"
  >

问题是,bar命名空间可以设置为两个不同的 XSD 之一,具体取决于配置文件的版本。

我正在寻找一种使用 ElementTree 打印命名空间映射的方法,这样我就可以检查正在使用两个 XSD 中的哪一个 - 然后我可以让我的代码来处理正确的情况。

有没有办法使用 Python 打印出所有的命名空间定义?

干杯,维克多

4

1 回答 1

0

你所拥有的是无效的 xml(未定义的前缀),我认为你不能这样做,xml.etree但你应该能够使用lxml.

import lxml.etree as et
tree = et.XML(yourxml)
print tree.nsmap
于 2012-12-31T00:46:34.740 回答