【问题标题】:Using regex to modify XML使用正则表达式修改 XML
【发布时间】:2015-06-26 14:05:28
【问题描述】:

我必须用这些文件的完整路径替换 XML 中的一些“文件名”。所有文件都在同一个目录中,这在某种程度上简化了事情。我试图使用 BeautifulSoup4,但有一个错误不断破坏崩溃的 python,所以我试图用正则表达式做同样的事情。

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))

就目前而言,我的代码运行但实际上并没有做任何事情。有人会碰巧知道如何修复我的代码吗?

非常感谢

【问题讨论】:

标签: python regex xml


【解决方案1】:

每次您尝试使用正则表达式解析 HTML/XML 时,都会让小耶稣哭泣。

BeautifulSoup 不适合你,我建议使用 XPath,如 python lxml - modify attributes 所示。

有趣(但有启发性)的阅读材料:

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多