我正在寻找一个可以将MathML转换为中缀并将中缀转换为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)我得到以下mathml
<?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中,因为我必须能够将库链接到非托管代码。
答案 0 :(得分:2)
我自己从未使用它,但看起来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转换为中缀字符串表示法并将其转换回来,并且对数学表达式结构的破坏最小。”
并举例说明你要做的事情......