2015-06-26 50 views
1

我必須用XML的一些'文件名'替換這些文件的完整路徑。所有的文件都在同一個目錄中,這可以簡化一些事情。我試圖使用BeautifulSoup4,但有一個bug一直在打破python崩潰,所以我試圖用正則表達式來做同樣的事情。使用正則表達式來修改XML

copasiML變量包含一個XML作爲字符串。

我的代碼:

copasiML=IA.read_copasiML_as_string(copasi_file) 
    data_file_names=re.findall('<Parameter name="File Name" type="file" value="(.*)"/>',copasiML) 
    for i in data_file_names: 
     copasiML2=re.sub('<Parameter name="File Name" type="file" value="'+i+'"/>','<Parameter name="File Name" type="file" value="'+os.path.join(os.getcwd()+i)+'"/>',copasiML) 
     os.remove(copasi_file) 
     with open(copasi_file,'w') as f: 
      f.write(str(copasiML2)) 

既然這樣,我的代碼運行,但實際上並沒有做任何事情。有人會碰巧知道如何解決我的代碼?

非常感謝

+0

我建議['lxml'(HTTP:// LXML .de /)庫或至少['xml.etree.ElementTree'](https://docs.python.org/2/library/xml.etree.elementtree.html#module-來自標準python的xml.etree.ElementTree) – har07

回答