Python(如何在不创建新文件的情况下更新xml文件)

时间:2018-11-27 11:56:39

标签: python linux shell unix python-2.6

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

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>

2 个答案:

答案 0 :(得分:1)

sed -i是您要寻找的。

您的情况应该是

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

答案 1 :(得分:0)

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

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

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