J'ai un programme Lua qui consomme des données provenant d'un périphérique externe. Le dispositif retourne XML malformé qui ressemble à:Correction d'un code XML incorrect dans Lua
<element attribute1="value1" attribute2="value2" attribute3=" m "value3" " attribute4="value4" />
En particulier certains champs sont modifiables par l'utilisateur et peut concevables contenir des éléments qui doivent être protégés, mais ne sont pas. J'espère que le code générera ces messages, mais d'ici là, j'ai besoin d'une solution de contournement pour essayer de faire ce qu'il faut. Les messages ne semblent venir dans un format fixe avec des attributs toujours dans le même ordre et toujours présent (pour autant que je peux dire) pour que je puisse utiliser une correspondance de motif très restrictif comme:
string.match(str, 'attribute1="(.*)" attribute2="(.*)" attribute3="(.*)" attribute4="(.*)")
mais cela semble vraiment icky et va bien sûr casser si elles décident de changer le format (sans résoudre le problème)
Des suggestions pour des solutions alternatives? Je suis principalement préoccupé par trouver "qui doivent être transformés en &" s. D'autres entités XML ne m'inquiètent pas autant:
Je pense que pour ma situation, je ferais mieux de faire d'abord l'expression régulière, puis de retomber en cas d'échec (et de cracher un avertissement à cet effet). Je ne fais que transférer sur le XML, ne le consommant pas, donc je veux juste le rendre agréable pour le code qui le consomme par la suite. – Dolphin