用 Lua 拉取 XML 标签

我目前正在开发一个 XML 解析器,并尝试使用 Lua 的模式匹配工具,但我没有得到预期的结果。假设我有这个 XML 片段:

<Parent>
<Child>
<Details>父标签中的文本和详情子标签</Details>
<Division>父标签中的文本和分区子标签</Division>
</Child>
</Parent>

我需要将 Parent 标签提取到表中,接下来是任何子标签以及它们对应的文本数据。我已经有了提取数据的模式:

 DATA = "<.->(.-)<"

以及单独提取标签的模式:

TAGS ="<(%w+)>"

但是如我所述,我需要区分嵌套的标签和非嵌套的标签。目前得到我所需最接近结果的模式是 :

CHILDTAG= "<%w->.-<(%w-)>"

它应该只打印 "Child",但由于我无法理解的原因,它也打印出了 "Division"。CHILDTAG 模式背后的想法是它可以捕获一个标签,但它有一个封闭标签,即 ".-" 用于表示它可能 / 可能不会在其中有一个新行,但是我认为这是完全错误的,因为 \ n-不起作用,这表示一个新行。我参考了文档和以下内容:

https://www.fhug.org.uk/wiki/wiki/doku.php?id=plugins:understanding_lua_patterns

Lua 5.1 中使用,我想解析以下模式的 XML 文件。我该怎么办?

Lua XML 从模式中提取

点赞