如何使用xml.sax.saxutils.XMLGenerator编写带有命名空间

时间:2016-03-02 22:02:58

标签: python xml sax

我已经使用XMLGenerator来编写东西,但似乎无法弄清楚如何使用namsepaces。我一直在收到KeyErrors。

我想写一个简单的例子

<svg width="120" height="120"
     viewBox="0 0 120 120"
     xmlns="http://www.w3.org/2000/svg">

  <rect x="10" y="10"
        width="100" height="100"
        rx="15" ry="15"/>

</svg>

我该如何调用startElementNS?

xmlgen.startElementNS(('http://www.w3.org/2000/svg','svg'),'svg',{})

给了我这个错误:

  File "c:\app\python\anaconda\1.6.0\envs\emblaze\lib\xml\sax\saxutils.py", line 169, in startElementNS
    self._write(u'<' + self._qname(name))
  File "c:\app\python\anaconda\1.6.0\envs\emblaze\lib\xml\sax\saxutils.py", line 134, in _qname
    prefix = self._current_context[name[0]]
KeyError: 'http://www.w3.org/2000/svg'

1 个答案:

答案 0 :(得分:1)

查看文档似乎表明你需要类似的东西:

xmlgen.startPrefixMapping

currency似乎是必要的。