Я пытаюсь отсканировать текстовый файл с помощью XML, у XML есть несколько элементов с этой структурой:
<enemy>
<type> 0 </type>
<x> 273 </x>
<y> 275 </y>
<event> </event>
</enemy>
Проблема в том, что xml может иметь пробелы между тегами или внутри них. Я создал цикл, и я пытаюсь сделать одно сканирование в каждой итерации, чтобы получить тип int, x, y и event в каждую переменную. Однако я не знаю, как игнорировать пробелы и как обрабатывать отсутствующие значения, поскольку некоторые теги могут иметь или не иметь значения (например, события).
Как я могу отсканировать этого "врага" без учета пробелов и отсутствующих значений?
Это просто: вы не разбираете XML, используя fscanf()
. Используйте настоящий синтаксический анализатор XML, иначе у вас будет очень сложный код, который не будет работать в 80% случаев, возвращая неверные данные или сбой.
Формат XML (несмотря на кажущуюся простоту) усложняется даже в самых безобидных случаях, и существующие XML-парсеры существуют по какой-то причине. См. Libxml или много других.
Тем не менее, если вы чертовски разбираетесь в XML-анализе, правильный способ сделать это - сначала подделать вход, а затем обеспечить, чтобы ваши последовательности токенов приводили к правильным формам. В этом случае сложнее, чем использование простого fscanf()
.