将一个文档中的所有<time>标记替换为另一个

时间:2017-02-20 21:33:19

标签: regex xml file editing

我有2个xml文件,每个文件有6000个标签 - 一个还包含许多其他数据,第二个 - 只有6000个标签。我想要做的是将doc 1中的标签替换为doc 2中的标签。因此,doc 2中的第1个替换doc 1中的1st,然后doc 2中的2nd替换doc 1中的2nd等... < / p>

Doc 1看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<gpx creator="Garmin Connect" version="1.1"
  xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/11.xsd"
  xmlns="http://www.topografix.com/GPX/1/1"
  xmlns:ns3="http://www.garmin.com/xmlschemas/TrackPointExtension/v1"
  xmlns:ns2="http://www.garmin.com/xmlschemas/GpxExtensions/v3"         
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <metadata>
<link href="connect.garmin.com">
  <text>Garmin Connect</text>
</link>
<time>2017-02-19T09:47:24.000Z</time>
  </metadata>
  <trk>
    <name>Hawkesbury Cycling</name>
    <type>cycling</type>
<trkseg>
  <trkpt lat="51.5749163925647735595703125" lon="-2.309663258492946624755859375">
    <ele>160.1999969482421875</ele>
    <time>1989-12-31T02:06:36.000Z</time>
    <extensions>
      <ns3:TrackPointExtension>
        <ns3:atemp>13.0</ns3:atemp>
        <ns3:hr>98</ns3:hr>
        <ns3:cad>0</ns3:cad>
      </ns3:TrackPointExtension>
    </extensions>
  </trkpt>
  <trkpt lat="51.57489853911101818084716796875" lon="-2.30963408946990966796875">
    <ele>160.600006103515625</ele>
    <time>1989-12-31T02:06:37.000Z</time>
    <extensions>
      <ns3:TrackPointExtension>
        <ns3:atemp>13.0</ns3:atemp>
        <ns3:hr>98</ns3:hr>
        <ns3:cad>29</ns3:cad>
      </ns3:TrackPointExtension>
    </extensions>
  </trkpt>
  <trkpt lat="51.5748837031424045562744140625" lon="-2.309593521058559417724609375">
    <ele>160</ele>
    <time>1989-12-31T02:06:38.000Z</time>
    <extensions>
      <ns3:TrackPointExtension>
        <ns3:atemp>13.0</ns3:atemp>
        <ns3:hr>99</ns3:hr>
        <ns3:cad>29</ns3:cad>
      </ns3:TrackPointExtension>
    </extensions>
  </trkpt>

Doc 2看起来像这样:

<time>2017-02-19T09:47:24Z</time>
<time>2017-02-19T09:47:25Z</time>
<time>2017-02-19T09:47:26Z</time>

因此,我想要一种自动方式将文档2中的所有<time>Blah...</time>内容替换为文档1 - 同时不会弄乱文档1的结构和其他内容。

任何想法???

所以......

doc 2中的第1行将替换doc 2中的第19行,doc 2的第2行将替换doc 2的第30行,doc 2的第3行将替换doc 1的第41行。所以我们这里有一个数字模式我们可以遵循 - 例如在第19行替换后的每11行......

我现在还格式化了doc 2,以便行号匹配doc 1,他们需要替换它们 - 例如,doc 1中的1st标记是第19行,现在在doc 2中它也是第19行,第2个标记在doc 1中是第30行,所以它在doc 2 ...

0 个答案:

没有答案