Board logo

标题: [文本处理] 求助:bat修改UTF-8编码XML文件里边某些内容后,保持其UTF-8编码格式不变 [打印本页]

作者: zltt520    时间: 2014-8-22 12:43     标题: 求助:bat修改UTF-8编码XML文件里边某些内容后,保持其UTF-8编码格式不变

求助各位大神:感激不尽。

需用bat去修改一个xml文件里边某几个字符串,xml是UTF-8编码方式的, 修改完成后,保持xml的编码方式为UTF-8不变。

xml文件内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<--Define the Mechine information for host command.-->
<MachineInfo>
  <Brand>DD</Brand>
  <Type>DD Tpye</Type>
</MachineInfo>

1、需要修改其中的DD 和DD Tpye为任意字符串,包括中文。如把‘DD’修改为 ‘大神’,‘DD Type’修改为 ‘大神 牛逼‘,注意中间有空格符。
2、修改后,保持xml文件的UTF-8编码格式不变。

我修改后,xml文件的编码格式变为ANSI了,这样会有<?变为了乱码。
作者: DAIC    时间: 2014-8-22 13:18

http://bbs.bathome.net/thread-27202-1-1.html
作者: CrLf    时间: 2014-8-22 16:36

这个用 perl 比较合适,以 utf-8 编码保存为 test.pl:
  1. use utf8;
  2. use Encode;
  3. open IN,"a.xml";
  4. @ar=<IN>;
  5. close IN;
  6. $text = join '',@ar;
  7. encode "utf-8",$text;
  8. $text =~ s/DD/大神/;
  9. $text =~ s/DD Type/大神 牛逼/;
  10. open OUT,">:encoding(utf-8)","a.xml";
  11. print OUT $text;
  12. close OUT;
复制代码

作者: zltt520    时间: 2014-8-24 19:04

回复 2# DAIC
非常感谢。
作者: zltt520    时间: 2014-8-24 19:05

回复 3# CrLf

非常感谢。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2