如何仅使用标准库编写XML解析器?

Kri*_*rin 1 c++ xml xml-parsing

我正在编写我的程序,我将导入XML文件并扫描解析器状态(也包括元素,行号,内容).

现在,我已经存储在所有元素和行号vectorstringinteger.

我的问题是,我如何扫描一个属性,最后我能够指出根,孩子和直接孩子?我尝试过使用<map>但仍然没有任何线索.

这里有些例子:

在此输入图像描述

输出将是

在此输入图像描述

如果我使用其他库会很容易,但我只想使用标准的C/C++库.

Mar*_*ler 5

如果需要XML解析器,请使用XML解析器.就那么简单.如果您不想使用现有工具,但只使用C++提供的工具,那么您将编写自己的XML解析器.这样做会很疯狂.

如果人们告诉你例如在XML上使用正则表达式:XML不是常规语言,你需要一个理解XML的词法分析器,它是一个XML解析器.要了解当您尝试RegEx分析HTML之类的内容时会发生什么,请参阅此答案.