我正在寻找一个可以将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/

10-11 23:14