我正在使用 flash 或 Flex 将 Word doc 标准方程 (OMML) 转换为 MathML,请通过提供简单的算法或代码片段来帮助我。
在此先感谢,玛尼
有一个 XSLT 1 样式表可以执行 Microsoft 提供的转换,作为 Word 分发的一部分,它负责将 MathML 放置在 Word 中的剪贴板上。通常安装为类似
c:/Program Files (x86)/Microsoft Office/Office14/OMML2MML.XSL
对此的早期版本有一些讨论
http://dpcarlisle.blogspot.co.uk/2007/04/xhtml-and-mathml-from-office-20007.html
这是我几天前正在学习的 C# 类的片段……我知道为时已晚……但为了减少未来的痛苦。
我认为在动作脚本中并没有太大的不同
该文件OMML2MML.xsl
位于%ProgramFiles%\Microsoft Office\Office12\
@David 提到的 xsl 文件用于将 MathML 放在 Word 中的剪贴板上并将 OMML 转换为 MML。
public static string OMML(string omml)
{
XslCompiledTransform xslTransform = new XslCompiledTransform();
xslTransform.Load("OMML2MML.xsl");
using (XmlReader reader = XmlReader.Create(new StringReader(omml)))
{
using (MemoryStream ms = new MemoryStream())
{
XmlWriterSettings settings = xslTransform.OutputSettings.Clone();
// Configure xml writer to omit xml declaration.
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.OmitXmlDeclaration = true;
XmlWriter xw = XmlWriter.Create(ms, settings);
// Transform our OfficeMathML to MathML
xslTransform.Transform(reader, xw);
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms, Encoding.UTF8);
string MathML = sr.ReadToEnd();
return MathML;
}
}
}