【问题标题】:Xml file, replacing numeric tag names with a valid onesXML 文件,将数字标签名称替换为有效名称
【发布时间】:2015-10-20 09:27:55
【问题描述】:

我有一个无法验证的大型 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>

我的文件包含数千个这样的文件,有什么工具可以让我自动完成。

【问题讨论】:

    标签: regex xml replace tags


    【解决方案1】:

    我用notepad++上的正则表达式做到了,这并不难,

    regex

    【讨论】:

      【解决方案2】:

      任何支持正则表达式搜索替换功能的体面的文本编辑器:

      search: <(/?)(\d+)>
      replace: <\1A\2>
      

      这应该替换所有标签,无论是在您的 XML 中打开还是关闭。

      【讨论】:

        【解决方案3】:

        我在每个数字标签之前添加了 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}" + ">");
        
                }​
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-07-09
          • 2013-04-16
          • 1970-01-01
          • 1970-01-01
          • 2013-08-31
          • 2013-06-19
          • 2023-03-23
          • 1970-01-01
          相关资源
          最近更新 更多