我有一个使用来自外部设备的数据的 Lua 程序。设备返回格式错误的 XML,如下所示:
<element attribute1="value1" attribute2="value2" attribute3=" m "value3" " attribute4="value4" />
特别是一些字段是用户可编辑的,并且可以想象包含应该转义但不是的项目。希望我可以修复生成这些消息的代码,但在那之前我需要一个解决方法来尝试“做正确的事情™”。消息似乎确实以固定格式出现,属性始终以相同的顺序排列并且始终存在(据我所知),因此我可以使用非常严格的模式匹配,例如:
string.match(str, 'attribute1="(.*)" attribute2="(.*)" attribute3="(.*)" attribute4="(.*)")
但这看起来真的很恶心,如果他们决定改变格式当然会中断(不解决问题。
对替代解决方案有什么建议吗?我主要关心的是找到需要转换为“的”。其他 XML 实体我不太担心。