J'ai cet énorme fichier xml (13 mb) et il a quelques valeurs malformées. Voici un exemple du xml:Regex pour ajouter CDATA pour XML mal formé
<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>
Maintenant c'est ok. Mais j'ai beaucoup d'autres noeuds qui ne sont pas encapsulés dans CDATA qui doivent l'être. Le nœud qui me donne des problèmes est le
<adprop index="0" proptype="description" value=""/>
J'ai créé cette expression régulière:
<adprop index="0" proptype="description" value="(.+)"\/>
pour attraper ce nœud et le remplacer par ceci:
<adprop index="0" proptype="description" value="<![CDATA[\1]]>"\/>
Je lance cela dans notepad ++ et ça marche.
Le seul problème est lorsque la valeur = « » est multi doublé comme:
<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" />
Il échoue avec celui-ci, et il y a beaucoup comme celui-ci.
Quelqu'un peut-il m'aider dans l'expression régulière afin que je puisse attraper la valeur quand il est multi-ligné?
Merci
CDATA à l'intérieur d'une valeur d'attribut n'est pas légal XML. Qu'est-ce qui vous fait penser que vous voulez une section CDATA là-bas? –
Alors comment puis-je échapper aux valeurs? – AntonioCS