2012-10-22 165 views
1

我想轉換我的腳本(https://github.com/fletchermoore/n2c2)使用默認的包xml.etree代替LXML的。這是我的疏忽,但現在我意識到這將是不可能得到我的目標受衆建立LXML他們的Mac電腦。從LXML轉換我的Python腳本xml.etree

我認爲大部分的代碼應該只是通過切換出進口工作,但是當我試了一下,我發現,xml.etree處理不同的命名空間(我不明白)。具體來說,在這裏轉換setTagNames函數最簡單的方法是什麼。 xml.fromstring()方法創建的。

def setTagNames(self, xml): 
    officens = xml.nsmap['office'] 
    textns = xml.nsmap['text'] 
    drawns = xml.nsmap['draw'] 
    xlinkns = xml.nsmap['xlink'] 
    stylens = xml.nsmap['style'] 
    fons = xml.nsmap['fo'] 

    names = {} 
    names['body'] = '{%s}body' % officens 
    names['text'] = '{%s}text' % officens 
    names['auto-styles'] = '{%s}automatic-styles' % officens 
    names['list'] = '{%s}list' % textns 
    names['list-item'] = '{%s}list-item' % textns 
    names['p'] = '{%s}p' % textns 
    names['line-break'] = '{%s}line-break' % textns 
    names['tab'] = '{%s}tab' % textns 
    names['span'] = '{%s}span' % textns 
    names['frame'] = '{%s}frame' % drawns 
    names['image'] = '{%s}image' % drawns 

    names['href'] = '{%s}href' % xlinkns 
    names['name'] = '{%s}name' % stylens 
    names['style-name'] = '{%s}style-name' % textns 
    names['font-weight'] = '{%s}font-weight' % fons 
    names['text-underline-style'] = '{%s}text-underline-style' % stylens 
    names['font-style'] = '{%s}font-style' % fons 
    names['font-size'] = '{%s}font-size' % fons 
    names['background-color'] = '{%s}background-color' % fons 
    names['color'] = '{%s}color' % fons 

    names['style'] = '{%s}style' % stylens 
    names['text-properties'] = '{%s}text-properties' % stylens 
    self.names = names 
    self.builder.names = names 
+0

[QName的](http://docs.python.org/library/xml.etree.elementtree.html#qname-objects)對象? –

回答