2013-07-19 66 views
0

我的XML文件(〜6000行)包含这样的诗句:查找/替换(在一个XML文件)一个属性的值,如果其他属性具有特定值

<sms protocol="0" address="+12341234" date="12341234" type="2" subject="null" body="smstext" toa="0" sc_toa="0" service_center="+12341234" read="1" status="-1" locked="0" date_sent="null" readable_date="Jan 6, 1980 1:02:14 AM" contact_name="Patrick" /> 

,我想更换contact_name的文本与其他东西,但仅当type =“2”时才有效。

我的意思是,如果我可以将所有type =“2”行加入书签,然后在仅加书签的行上进行搜索/替换,那么这将非常容易,但是我还没有找到这样的选项。

那么我会怎么做在记事本++?

编辑:改了称呼,我的意思不是属性标签...

+0

更大的数据集将有助于更好地了解数据的格式(标记中的字段始终是相同的序列,一行中是否有多个记录,是否有多行标签等)。 –

+0

@TimRadcliffe除xml标题外,只有标记行,没有多行标记,并且在一行上没有多个记录。除了不同的属性值外,它们基本上都是相同的。 – cptPH

回答

1

您可以尝试以下操作:

查找:您看到\1\2SomeOtherContactName\4

(?<=type="2")咱就:(?<=type="2")(.*?)(contact_name=")(.*?)(")

与更换如果字符串包含type =“2”,但未捕获字符串

(.*?)是类型和联系人姓名(任何符号)

(contact_name=")之间的第一组 - 在第二组

(.*?)组#3 wicth你想与其他值(任何符号来代替,或可以看起来像[A-Za-z]

(") - 只包含结束报价。我们将它用作组4替换语句

+0

thx按照我想要的方式工作:)(将搜索模式设置为正则表达式后) – cptPH

相关问题