2015-09-30 58 views
0

我有一个其中包含9000行的XML文件。在记事本中查找并替换为大文件++

每个XML节点都有大约10个属性。

其中一个属性是:

<CreatedDate>2009-10-26T02:39:24</CreatedDate> 

我需要做的是改变的日期时间,以格式:

<CreatedDate>27/05/2010 07:30:16</CreatedDate> 

但我不知道该怎么做。

我知道我可以编写一个正则表达式来识别需要替换的每个值,但是如何才能使其只改变我想要的值并保持其余值?

我曾经想过编写一个宏,但是这个文档太大了,无法用我可以预测出我想要改变的元素的位置的格式,而搜索某个东西似乎不适用于宏。

任何想法? - 我确信它可以完成。

回答

2

如果你想只改变内部<CreatedDate>标签日期时间格式,请尝试正则表达式中的记事本替代++这样的:

替换此:

<CreatedDate>(\d{4})\-(\d{2})\-(\d{2})T([\d\:]*)</CreatedDate> 

有了这个:

<CreatedDate>$3/$2/$1 $4</CreatedDate> 

我们使用$符号引用每个圆括号及其位置,以便我们可以在替换结果中使用这些值。

2

查找:

<CreatedDate>(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)</CreatedDate> 

替换:

<CreatedDate>\3/\2/\1 \4:\5:\6</CreatedDate> 

\ d一个数字相匹配。 大括号创建一个您参考的组,例如\ 1

1

找到这个

<CreatedDate>(\d{4})-(\d{2})-(\d{2})T(\d{2}:\d{2}:\d{2})<\/CreatedDate> 

替换为:

<CreatedDate>\3/\2/\1 \4<\/CreatedDate>