【问题标题】:How to compare two mathml values using javascript?如何使用javascript比较两个mathml值?
【发布时间】:2015-02-16 20:42:58
【问题描述】:

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

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

【问题讨论】:

  • 究竟什么是“MathML 值”?您如何使用 Javascript 中的 MathML DOM?请分享您的代码。
  • 您对比较的定义是什么?相等与不相等?您的问题需要更多详细信息,包括示例输入和预期结果。此外,你必须尝试一些东西,然后问为什么它不起作用,Stack Overflow 是针对你卡在的代码的问题,而不是你不知道如何开始的代码。
  • Juan,我想检查用户选择的值是否等于正确答案。我试过并且被卡住了,因为我是 Mathml 的新手,所以我有这个问题。而且没有理由粗鲁!

标签: javascript mathml


【解决方案1】:

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

我不知道如何在不使用库的情况下做到这一点,无论是否将其称为外部库,除了在给定的一组点上评估公式并检查正确答案和学生答案是否给出相同的值;尽管此方法在某些情况下可能会失败。这就是我建议使用 CAS 的原因。

CAS 可以用 JavaScript 或任何其他最常见的语言编写。

【讨论】:

    【解决方案2】:

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

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

    示例:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-11
      • 2011-01-23
      • 1970-01-01
      • 2011-05-22
      相关资源
      最近更新 更多