MathML имеет как семантическую, так и презентационную разметку. Таким образом, общий анализатор MathML для оценки невозможен.
Я не знаю фактической реализации, некоторые быстрые поиски в Google не дали никаких разумных результатов, но в основном это сводится к написанию вашего польского интерпретатора выражений (поскольку в приведенном вами примере используется польская нотация). Шаги:
- получить синтаксический анализатор XML и прочитать документ
- пройтись по дереву
- , если вы встретите известную операцию или элемент, поместить его в стек
- , когда подвыражение будет завершено, проанализируйте его (или лучше: дождитесь завершения всего выражения, найдите последнюю операцию, выполните ее с количеством аргументов, предписываемым ее арностью, и выполняйте это, пока не останется никаких операций)
В конце вы получите результат на стек.
ответ дан 17 December 2019 в 18:10
поделиться