【问题标题】:Python (How to update xml file without creating new file)Python(如何在不创建新文件的情况下更新 xml 文件)
【发布时间】:2018-11-27 11:56:39
【问题描述】:

我需要更改 xml 文件中元素 (DB_CONNECT_STRING) 的值,而无需使用 python 或 shall 脚本创建新文件。

xml文件内容

<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<!-- Database server details -->
<DB_CONNECT_STRING>(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=abc)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=cdb)))</DB_CONNECT_STRING>
</properties>

更新的 xml 文件

------
<properties>
--------
<DB_CONNECT_STRING>(new data)</DB_CONNECT_STRING>
-------
</properties>

【问题讨论】:

标签: python linux shell unix python-2.6


【解决方案1】:

sed -i 就是你要找的东西。

在你的情况下,应该是

sed -i 's#<DB_CONNECT_STRING>.*</DB_CONNECT_STRING>#<DB_CONNECT_STRING>(new data)</DB_CONNECT_STRING>#' <here_is_your_file>

【讨论】:

【解决方案2】:

我会使用 进行简单的 XML 编辑:

xmlstarlet ed -u /properties/DB_CONNECT_STRING -v "new value" file.xml

如果输出正常,请使用xmlstarlet --inplace ... 保存回文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多