我试图用XML扫描文本文件,XML有许多具有这种结构的项目:
<enemy>
<type> 0 </type>
<x> 273 </x>
<y> 275 </y>
<event> </event>
</enemy>
问题是xml可能在标签之间或其内部有空格。我创建了一个循环,我尝试在每次迭代中进行单次扫描,以将int类型,x,y和事件分别变为变量。但是,我不知道如何忽略空格以及如何处理缺失值,因为某些标记可能有也可能没有值(如事件)。
我如何扫描这个&#34;敌人&#34;没有间距和缺失值?
答案 0 :(得分:1)
这很简单 - 您不使用fscanf()
解析XML。使用真正的XML解析器,否则你将得到一个非常复杂的代码,80%的时间都无法返回错误的数据或崩溃。
XML格式(尽管看似简单)即使在大多数无害的情况下都很复杂,现有的XML解析器也是有原因的。请参阅libxml或其他许多内容。
但是,如果你自己一心想解析XML,那么正确的做法是首先对输入进行标记,然后确保令牌序列产生正确的形式。这比使用简单fscanf()
更复杂。