首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数学表达式到MathML

数学表达式到MathML
EN

Stack Overflow用户
提问于 2014-10-09 10:39:14
回答 1查看 898关注 0票数 4

我正在尝试构建功能,就像在本站上一样,用户将在文本区域输入一个数学表达式,并将其呈现为MathML格式。

示例:

代码语言:javascript
复制
Input expression string: cos(x^3)

Then the expression should be converted to MathML as:

<math xmlns='http://www.w3.org/1998/Math/MathML'>
    <mrow>
        <mi>cos</mi>
        <mo>&#8289;</mo>
        <mo>(</mo>
        <msup>
            <mi>x</mi>
            <mn>3</mn>
        </msup>
        <mo>)</mo>
    </mrow>
</math>

什么是C#解决方案?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-09 18:33:03

我从之前的解析器中创建了一个MathML解析器的基本表达式。您可以下载或发送BitBucket的结果。(下载左侧链接)。

使用ToMathML(expression)类的Parser方法将表达式转换为MathML。

它还附带了用于测试解析器的命令行测试程序,生成MathML的命令是ml:

代码语言:javascript
复制
calc ~:> ml cos(x^3)
<math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mi>cos</mi><mrow><mrow><mo>(</mo><mrow><msup><mi>x</mi><mn>3</mn></msup></mrow><mo>)</mo></mrow></mrow></mrow></math>
calc ~:> ml 1/(x-1)
<math xmlns='http://www.w3.org/1998/Math/MathML'><mrow><mfrac><mn>1</mn><mrow><mrow><mo>(</mo><mrow><mi>x</mi><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow></mrow></mfrac></mrow></math>
calc ~:>

解析器中没有隐含的乘法,所以必须始终在表达式中使用*(如2*x)。

希望它对您的场景有帮助。我想这取决于你需要它的功能有多充分。在它的当前形式中,解析器将将表达式转换为MathML的一个非常基本的子集。

可以随意地把它分叉,然后继续做下去。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26276325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档