2012-08-22 34 views
0

我將以下mathml代碼正確存儲在數據庫中。但是,當它顯示時,似乎wordpress會改變「mfrac」內關閉標籤「mrow」的順序。所以渲染的數學表達式是錯誤的。爲什麼wordpress更改mathml標籤的順序

這是原來的MATHML代碼:

<math> 
    <mrow> 
      <mi selected="true">f</mi> 
      <mo stretchy="false">(</mo> 
      <mi>x</mi> 
      <mo stretchy="false">)</mo> 
      <mo>=</mo> 
      <mo>&minus;</mo> 
      <mfrac> 
        <mi>x</mi> 
        <mrow> 
          <mn>1</mn> 
          <mo>+</mo> 
          <mrow> 
            <mo>|</mo> 
            <mi>x</mi> 
            <mo>|</mo> 
          </mrow> 
        </mrow> 
      </mfrac> 
      <mo stretchy="false">(</mo> 
      <mi>x</mi> 
      <mo>&isin;</mo> 
      <mi>R</mi> 
      <mo stretchy="false">)</mo> 
    </mrow> 
</math> 

這是在瀏覽器中呈現的HTML代碼:

<math> 
    <mrow> 
      <mi selected="true">f</mi> 
      <mo stretchy="false">(</mo> 
      <mi>x</mi> 
      <mo stretchy="false">)</mo> 
      <mo>=</mo> 
      <mo>&minus;</mo> 
      <mfrac> 
        <mi>x</mi> 
        <mrow> 
         <mn>1</mn> 
         <mo>+</mo> 
        </mrow> 
        <mrow> 
         <mo>|</mo> 
         <mi>x</mi> 
         <mo>|</mo> 
        </mrow> 
      </mfrac> 
      <mo stretchy="false">(</mo> 
      <mi>x</mi> 
      <mo>&isin;</mo> 
      <mi>R</mi> 
      <mo stretchy="false">)</mo> 
    </mrow> 
</math> 
+0

您的初始mathml具有無效的選擇屬性,但可能不相關。你使用的是什麼瀏覽器?舊版本的Chrome(我認爲是7和8)在mathml中錯誤地解析了mtext,但是這已經修復了一段時間 –

+0

我的chrome版本是21.0.1180.83 m。我不認爲這是由瀏覽器造成的。 –

回答

0

mrowmfrac都在同一水平上的MathML標記層次的,這是稱爲演示文稿模式,所以也許spec被誤解爲不允許嵌套mrow s:

表達式內容的遞歸定義。包含 演示文稿結構在最低級別,因此演示文稿 佈局模式保存演示文稿或內容元素。 包括在最低水平,以便內容 元件保持在葉 電平(在上下文允許的取代元素)PCDATA或表示元素含量構建

也可能與一個existing bug

+0

嵌套'mrow's無效。 –

相關問題