【问题标题】:Fixing bad XML in Lua修复 Lua 中的错误 XML
【发布时间】:2010-11-06 00:04:39
【问题描述】:

我有一个使用外部设备数据的 Lua 程序。设备返回格式错误的 XML,如下所示:

<element attribute1="value1" attribute2="value2" attribute3=" m "value3" " attribute4="value4" />

特别是一些字段是用户可编辑的,并且可以想象包含应该转义但不是的项目。希望我可以修复生成这些消息的代码,但在那之前我需要一种解决方法来尝试“做正确的事情™”。消息似乎确实以固定格式出现,属性总是以相同的顺序并且总是存在(据我所知),所以我可以使用非常严格的模式匹配,例如:

string.match(str, 'attribute1="(.*)" attribute2="(.*)" attribute3="(.*)" attribute4="(.*)")

但这似乎真的很恶心,如果他们决定更改格式当然会中断(不解决问题。

对替代解决方案有什么建议吗?我主要关心的是找到需要变成“的”。其他 XML 实体我不太担心。

【问题讨论】:

    标签: xml lua malformed


    【解决方案1】:

    不幸的是,如果 XML 是这样的格式错误,您就无法想出绝对适用于所有情况的东西。

    我要做的是,首先,尝试将其解析为普通 XML。如果失败,请回退到您的正则表达式方法。这样,当这个 XML 的生产者被修复时,你的代码就会自动开始做正确的事情。

    【讨论】:

    • 我认为就我的情况而言,我最好先执行正则表达式,然后在失败时回退(并为此发出警告)。我只是在 XML 上转发,而不是使用它,所以我只想让它更好地用于稍后实际使用它的代码。
    猜你喜欢
    • 2019-12-17
    • 2011-10-10
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    相关资源
    最近更新 更多