我有以下xml:
<a:something>text-a</a:something>
<a:otherthing>text-b</a:otherthing>
我希望分配一个<a:otherthing>
文本的变量。
我尝试了txt = xml.find("a:otherthing").text
,但它显示了SyntaxError: prefix 'a' not found in prefix map
我该怎么做?
答案 0 :(得分:1)
您的XML应在上面的某处声明给定前缀“a”的命名空间。
请注意,XML允许在一个文档中更改名称空间的次数几次(但不经常使用)。
然后你会发现,对于“ns:a”,有一些行“http://a.alfa.aa/a/aaa.aa”字符串,这就是所谓的完全限定名称空间。
在您的发现中,您将使用
形式的命名空间映射nsmap = {"a": "http://a.alfa.aa/a/aaa.aa"}
xml.find("a:otherthing", namespaces=nsmap)