MathML到/从纯文本转换器

目录

介绍

参与的类

准备

使用代码

基本原则


介绍

MathML代码转换为纯文本的资源似乎很少。一个很好的理由是在如何格式化一些数学表达式方面没有达成共识。但是对于许多涉及(+,-,/,*,^,=)运算符的表达式,这里是一种可能的转换器。

参与的类

  • MathToStringMathML代码准备了string,以便class ParseML可以执行详细的解析。

准备

首先,空格被空字符串替换,一些特殊字符也被替换。此外,数学表达式中不涉及的一些标签(如style标签)也被删除。然后代码从最内部的 <mfrac>...</mfrac>, <msup>...</msup>, <mrow>...</mrow>, <msqrt>...</msqrt>标签转到最外面的标签,被解析和替换,将它们封闭在特殊字符之间,以便以后可以按ParseML类恢复。

使用代码

要转换,只需调用共享方法MathToString.convertToString()

Dim converted as String = MathMLToString.convertToString(MathMLcodeToConvert)

要将文本转换为MathML,请调用convertStringToMathML()

基本原则

解析方法是递归下降解析:Parsing Expressions by Recursive Descent

求值方法E调用T进行任何加法或减法,但T首先调用F进行任何乘法或减法,并且F首先调用P进行任何可能的幂运算。P首先调用v以获取下一个令牌。如果有"(" 标记,则v递归调用T

E --> T {( "+" | "-" ) T}
T --> F {( "*" | "/" ) F}
F --> P ["^" F]
P --> v | "(" E ")" | "-" T

https://www.codeproject.com/Tips/5331794/MathML-to-from-Plain-Text-Converter

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值