日期:2014-05-16  浏览次数:20684 次

linux下批量修改xml文件内容
大家好: 

好久不上CSDN了,上来就问问题,实在不好意思。但也不得不问。
我的问题是: 在linux下有多个xml文件,里面有相同的登录信息(如:连接数据库IP 用户名等),修改起来非常的不方便。我想将那些通用的信息再写一个ini文件,然后用脚本调用。不知如何实现。请大家指定下:

举例 : 
xml文件中
<IP>0.0.0.0</IP>

ini文件
IP=1.1.1.1

现在要读取ini文件中字段,来修改xml字段。


请大家说下使用什么脚本,具体用的什么,谢谢。


------解决方案--------------------
xml不是有现成的解析器么
也很方便的

------解决方案--------------------
js脚本解析xml就比较好
------解决方案--------------------
TiXml使用详解
http://blog.csdn.net/appletreesujie/archive/2009/05/21/4207435.aspx

很简单的,你读到ini文件中的"ip"等字段后,保存在一个vector里,然后再通过上边的网站介绍的方法读取
xml里的数据,把vector里的数据替换掉就可以了,即:
get,然后再set。
------解决方案--------------------
可以用正则表达式来作替换

sed 或 awk
------解决方案--------------------
Perl code


[root@martin tmp]# cat ini 
IP=1.1.1.1
PORT=5000
[root@martin tmp]# cat xml 
<IP>1.1.1.1</IP>
<PORT>5000</PORT>
[root@martin tmp]# cat t.sh 

. ./ini
sed -i "s/\(<IP>\).*\(<\/IP>\)/\1$IP\2/" xml
sed -i "s/\(<PORT>\).*\(<\/PORT>\)/\1$PORT\2/" xml

------解决方案--------------------
据说sed和awk都可以很容易实现