我正在寻找一个可以将MathML转换为infix并将infix转换为MathML的C / C++库,例如:
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<cn type="integer"> 2 </cn>
<ci> x </ci>
</apply>
</math>
该库会将mathml转换为2 * x。或给定x + sin(t)我得到以下数学
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<plus/>
<ci> x </ci>
<apply>
<sin/>
<ci> t </ci>
</apply>
</apply>
</math>
我知道如何编写这样的库,但是如果可能的话,宁愿不要重新发明轮子。不能使用Java,因为我必须能够将库链接到非托管代码。
最佳答案
我从未亲自使用过它,但看起来libSBML可能会满足您的目的:
http://www.google.co.uk/search?q=libsbml+convert+mathml+infix
http://sbml.org/Software/libSBML/docs/cpp-api/libsbml-features.html
在本页:
http://sbml.org/Software/libSBML/docs/cpp-api/
它说:
“libSBML公式解析器经过精心设计,因此可以在不破坏数学表达式结构的情况下,实现从MathML到后缀字符串表示法的转换。
并举例说明您要做什么...
关于c++ - 是否有C/C++库可以转换MathML <->中缀?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8392342/