Разбор и запись рационального числа содержимого mathML с помощью ptree boost, содержащего sep

Я пытаюсь писать и читать / анализировать XML-файлы содержимого MathMl с помощью boost ptree (property_tree), который я не вижу. Я не могу решить, чтобы написать или разобрать этот код:

<?xml version="1.0" encoding="utf-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
 <cn type="rational">1<sep/>2</cn>
</math>

Проблема в "сеп /". Когда я использую get_value() или get() со строкой или int, я получаю "12". Я не могу разделить 1 и 2. Как я могу получить или записать два отдельных значения "1" и "2".

1 ответ

Boost Property Tree не является анализатором XML.

Вместо этого это утилита сохранения настроек, которая облегчает

  • (де) сериализовать определенный набор иерархических типов данных
  • в несколько (частично взаимозаменяемых) форматов

Обратите внимание, что набор функций для каждого формата не одинаков.

Специально для вашей цели вам нужен парсер, который обрабатывает элементы со смешанным содержимым (элементы, содержащие как текст, так и подэлементы, смешанные). Есть удивительное количество парсеров XML, которые не справляются с этим. Boost Property Tree - это (использует?) Такой парсер.

Итак, вы должны взглянуть на другую библиотеку, чтобы получить это.

Другие вопросы по тегам