Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 正则表达式为格式错误的XML添加CDATA_Windows_Xml_Notepad++ - Fatal编程技术网

Windows 正则表达式为格式错误的XML添加CDATA

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

我有一个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"/>
        <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区域呢?那么我怎样才能转义这些值呢?