我有一个无法验证的大型xml文件,因为它包含一些数字标记名称,以下是它的外观:
<?xml version="1.0" encoding="UTF-8" ?>
<root>
<0>
<id>545f7bf982efa41a496379d2</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour</name>
<address>1175 rue Guillaume Du Vair</address>
<created>1415543801.5059</created>
</0>
<1>
<id>545f7bf982efa41a496379d4</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour Angers Grand Maine</name>
<address>rue Du Grand Launay</address>
<created>1415543801.5146</created>
</1>
<2>
<id>545f7bf982efa41a496379d6</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour Angers Saint Serge</name>
<address>boulevard Gaston Ramon</address>
<created>1415543801.523</created>
</2>
<3>
<id>545f7bf982efa41a496379d8</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour Anglet Bab2</name>
<address>avenue Jean Léon Laporte</address>
<created>1415543801.5302</created>
</3>
<4>
<id>545f7bf982efa41a496379da</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour Angoulins</name>
<address>route De Rochefort</address>
<created>1415543801.5385</created>
</4>
<5>
<id>545f7bf982efa41a496379dc</id>
<org_id>1</org_id>
<status>open</status>
<name>Carrefour Annecy</name>
<address>134 avenue De Genève</address>
<created>1415543801.5458</created>
</5>
.
.
.
</root>
我要做的是自动将每个数字标签替换为有效标签,例如: 替换
Replace <0>...</0> with <A0>...</A0>
我的文件中包含数千个这样的文件,是否可以使用任何工具自动执行此操作。
答案 0 :(得分:0)
我设法通过在记事本++上使用正则表达式,这并不难,
答案 1 :(得分:0)
支持正则表达式搜索替换功能的任何体面的文本编辑器:
search: <(/?)(\d+)>
replace: <\1A\2>
这应该替换所有标签,无论是打开还是关闭XML。
答案 2 :(得分:0)
我在每个数字标签
之前添加了xyz const string FILENAME = @"c:\temp\test.xml";
static void Main(string[] args)
{
string input = File.ReadAllText(FILENAME);
string pattern = @"(?'open_tag'</?)(?'numbers'\d+)>";
MatchCollection matches = Regex.Matches(input, pattern);
input = Regex.Replace(input, pattern, "${open_tag}" + "xyz" + "${numbers}" + ">");
}