如何使用javascript比较两个mathml值?

时间:2015-02-16 20:42:58

标签: javascript mathml

我有一个html页面,其中包含数学问题和mathml(在浏览器中显示公式)作为选项。因此,当用户选择该选项时,需要将所选选项与正确答案进行比较。选项值是mathml。那么如何使用java脚本比较两个mathml值?

P.S不应该使用任何外部库。

2 个答案:

答案 0 :(得分:0)

我猜你有MathML,公式涉及一些变量,如x + 1或sqrt(a ^ 2 + b ^ 2)。在这种情况下,您需要CAS(计算机代数系统)来评估答案。

我不知道如何在不使用库的情况下进行操作,无论是否在外部调用,除了在给定的点集上评估公式并检查正确答案和学生答案是否给出相同的值;虽然这种方法在某些情况下可能会失败。这就是我建议使用CAS的原因。

CAS可以用JavaScript或任何其他语言编写,这是最常见的情况。

答案 1 :(得分:0)

您可以使用此库来比较两个MathML表达式 https://www.npmjs.com/package/dl-mathml-compare

  1. 通过npm install dl-mathml-compare
  2. 安装
  3. 使用var DLMathMLCompare = require('dl-mathml-compare');
  4. 要求您的代码
  5. 在代码中使用DLMathMLCompare('Your MathML expression here', 'Your another MathML expression');
  6. 如果匹配则返回true,否则返回false
  7. 示例:

    DLMathMLCompare('<math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mn>1</mn><mrow><mn>2</mn><msqrt><mo>&#xA0;</mo></msqrt><mo>&#xA0;</mo></mrow></mfrac></math>', '<math xmlns="http://www.w3.org/1998/Math/MathML"><mfrac><mn>1</mn><mrow><mn>2</mn><msqrt/><mo>&#xA0;</mo></mrow></mfrac><mo>&#xA0;</mo><mo>&#xA0;</mo> </math> ')
    // This will return true