我正在编写一个生成 Atom feed 的 Lua 应用程序。现在,我正在“手动”生成 XML——将字符串写入文件。

这似乎不是最好的方法,尽管它可能是。我对逃跑是否正确感到紧张。有人在 Lua 中做过类似的事情吗?

我应该坚持“手动”生成吗?或者为现有的 C 库编写一个包装器?

(相比之下,Perl 似乎 太多的选择.)

其他提示

我已经生成手工XML太。我创建看起来像一个API:

function XmlElement(tag, text, attr)
    ...
end

function XmlSubelement(root, tag, text, attr)
    ...
end

然后使用它:

local root = XmlElement("Level0")
XmlSubelement(root, "Level1", "some text")
XmlSubelement(root, "Level1", "some more text")

local s = root:tostring()

我没有任何代码长,但它适合在一个屏幕,包括引用上。

Lua 也有各种数据持久化库,许多都在 Lua 用户的 wiki. 。这 XML 页面 有可以提供帮助的信息。

那边的好人 开普勒计划 有 HTML 生成器,可用于生成有效的 XML。 (死链接。)

还有 科斯莫 这是一个通用模板框架,可用于生成 XML(除其他外)。

编辑:

我理解对模板的关注不一定能保证输出保持良好的格式。我很确定,如果格式良好的模板生成格式错误的文档,Cosmo 的作者会不高兴,但仍然存在正确引用内容的问题。在我使用它的环境中,这对我来说不是问题,但我也没有使用不受信任的源文本。

LuaForge 上还发布了一些可能有用的项目:

  • Lua元素树 将 XML 文档映射到表树或从表树映射 XML 文档。它使用 Expat 进行读取,并声称在写入时生成有效的 XML。

  • LuaSOAP 包括足以用于 SOAP 事务的 XML 生成和解析。如果您决定编写自己的生成器,那么对于 RSS 或 ATOM 等有限方言来说,这可能是一个很好的起点。

另外,我知道我见过一个项目,它为 HTML 文档实现了完整的 DOM,并支持解析和文档生成,但我不记得它的名称,也无法在 LuaForge 上找到它。

编辑2: 这是我之前没有注意到的另一个包,尽管它包含在 Windows 下的 Lua: LuaXML. 。它在 XML 和 Lua 表嵌套之间进行映射,并且可以读取和写入 XML。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top