python-mathdom的替代方案

6 投票
1 回答
1608 浏览
提问于 2025-04-16 18:40

我想把一个MathML表达式转换成一个数学公式字符串,用Python来实现。为此,MathDOM模块应该是个不错的选择。

举个例子:

<math xmlns="http://www.w3.org/1998/Math/MathML">
   <lambda>
     <bvar><ci>A</ci></bvar>
     <bvar><ci>B</ci></bvar>
     <apply>
         <plus/>
         <ci>A</ci>
         <ci>B</ci>
     </apply>
   </lambda>
</math>

这个应该能转换成"A + B"。显然,它也应该能处理更复杂的表达式。

不过,这个模块比较老旧,跟新版本的xml模块不太兼容(比如试图引入错误的模块结构等等)。

有没有人知道其他好用的替代方案?

1 个回答

2

到目前为止,最好的解决方案是:libsbml

from libsbml import *
ast = readMathMLFromString(xmlString)
f = FunctionDefinition(2,4)
f.setMath(ast)
kl = KineticLaw(2,4)
kl.setMath(f.getBody())
kl.getFormula()

对我来说没问题,因为我已经在使用它了,但这还不是一个普遍适用的解决办法。

撰写回答