Windows 正则表达式为格式错误的XML添加CDATA
我有一个13MB的巨大xml文件,它有一些格式错误的值。以下是xml的一个示例:Windows 正则表达式为格式错误的XML添加CDATA,windows,xml,notepad++,Windows,Xml,Notepad++,我有一个13MB的巨大xml文件,它有一些格式错误的值。以下是xml的一个示例: <propertylist> <adprop index="0" proptype="type" value="Ft"/> <adprop index="0" proptype="category" value="Bs"/> <adprop index="0" proptype="subcategory" value="Bsm
<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]]>"\/>
我在notepad++中运行了这个程序,它可以正常工作
唯一的问题是当值=为多行时,如:
<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" />
这一次失败了,像这一次这样的机会很多
有人能帮我解决正则表达式的问题吗?这样,当它是多行的时候,我就可以捕捉到它的值了
谢谢尝试向正则表达式添加\r或\n以包含换行符,因为点字符与除换行符以外的任何字符匹配。我不确定Notepad++的正则表达式语法是什么,但它应该在帮助中列出这一点。我使用的编辑器将允许在其正则表达式引擎中使用换行符。我尝试使用\n但仍然不匹配。我将字符串放在正则表达式编辑器中,它仅在单行时匹配:属性值中的CDATA不是合法的XML。是什么让你认为你需要一个CDATA区域呢?那么我怎样才能转义这些值呢?