我有这个巨大的xml文件(13 mb)并且它有一些格式错误的值。以下是xml的示例:
<propertylist>
<adprop index="0" proptype="type" value="Ft"/>
<adprop index="0" proptype="category" value="Bs"/>
<adprop index="0" proptype="subcategory" value="Bsm"/>
<adprop index="0" proptype="description" value="MOONEN CUSTOM 58"/>
</propertylist>
现在没问题。但是我需要的许多其他节点都没有封装在CDATA中。
是给我带来问题的节点<adprop index="0" proptype="description" value=""/>
我创建了这个正则表达式:
<adprop index="0" proptype="description" value="(.+)"\/>
捕获该节点并将其替换为:
<adprop index="0" proptype="description" value="<![CDATA[\1]]>"\/>
我在记事本++中运行它并且它可以工作。
唯一的问题是当值=“”是多行的,如:
<adprop index="0" proptype="description" value="cutter that has demonstrated her offshore capabiliti from there to the Canaries with her current owner.
Spacious homely interior with over 2m headroom and heaps of" />
这个失败了,有很多这样的。
任何人都可以在正则表达式中帮助我,这样我就可以在多线时抓住它的价值吗?
由于
答案 0 :(得分:0)
尝试将\r
或\n
添加到正则表达式中以包含换行符,因为点字符匹配“除换行符之外的任何字符”。我不确定Notepad ++采用什么正则表达式语法,但它应该在帮助中列出这一点。 (我使用的编辑器UltraEdit将允许其正则表达式引擎中的换行符。)