2011-05-31 84 views
5

我想將MathML表達式轉換爲python中的方程式字符串,其中的MathDOM module應該很好。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模塊的新版本工作正常(嘗試包括錯誤的模塊結構等)

有誰知道有用的替代品?

回答

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() 

好吧,我因爲我已經有,但遠不是一個通用的解決方案工作。

+0

是不是一般的解決方案? – Santhucool 2015-08-24 12:42:48

+0

它不支持Python 3.4。只支持2.6和2.7 – Santhucool 2015-08-24 13:28:53