如何在 XML 解析器中使用 Jquery 中的 MATH MML 代码
How to use code for MATH MML in Jquery in XML Parser
使用 JQuery XML 解析器一切正常。我有方程式代码,同时我试图找到它的代码 return none。但是代码实际上在XML中。我不知道它找不到的确切原因。可能是 xml 节点包含“:”,这就是原因。你能帮我找到代码 mml:math
XML代码
<p>
<disp-formula id="disp-formula3-xxxx">
<label>(3)</label>
<alternatives>
<mml:math id="math15-xxxx" display="block">
<mml:mrow>
<mml:mi mathvariant="normal">Risk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:mrow>
<mml:mo>∫</mml:mo>
</mml:mrow>
</mml:mstyle>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Load Events</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
<graphic xlink:href="10.1177_1687814018802531-eq3.tif"/>
</alternatives>
</disp-formula>
</p>
在JQUERY
alert($xml.find("mml:math").length)
它return是零。我必须检查很多基于 Math MML 代码的编码。你能帮我理解这里的问题吗
To use any of the meta-characters ( such as !"#$%&'()*+,./:;<=>?@[\]^`{|}~
) as a literal part of a name, it must be escaped with with two backslashes: \
. docs
因此您需要在选择器中转义 :
并使用
$xml.find("mml\:math").length
var $xml = $.parseXML($("#xml").html().trim());
var leng = $($xml).find('mml\:math').length;
console.log(leng);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="xml">
<p>
<disp-formula id="disp-formula3-xxxx">
<label>(3)</label>
<alternatives>
<mml:math id="math15-xxxx" display="block">
<mml:mrow>
<mml:mi mathvariant="normal">Risk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:mrow>
<mml:mo>∫</mml:mo>
</mml:mrow>
</mml:mstyle>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Load Events</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
<graphic xlink:href="10.1177_1687814018802531-eq3.tif"/>
</alternatives>
</disp-formula>
</p>
</div>
使用 JQuery XML 解析器一切正常。我有方程式代码,同时我试图找到它的代码 return none。但是代码实际上在XML中。我不知道它找不到的确切原因。可能是 xml 节点包含“:”,这就是原因。你能帮我找到代码 mml:math
XML代码
<p>
<disp-formula id="disp-formula3-xxxx">
<label>(3)</label>
<alternatives>
<mml:math id="math15-xxxx" display="block">
<mml:mrow>
<mml:mi mathvariant="normal">Risk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:mrow>
<mml:mo>∫</mml:mo>
</mml:mrow>
</mml:mstyle>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Load Events</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
<graphic xlink:href="10.1177_1687814018802531-eq3.tif"/>
</alternatives>
</disp-formula>
</p>
在JQUERY
alert($xml.find("mml:math").length)
它return是零。我必须检查很多基于 Math MML 代码的编码。你能帮我理解这里的问题吗
To use any of the meta-characters ( such as
!"#$%&'()*+,./:;<=>?@[\]^`{|}~
) as a literal part of a name, it must be escaped with with two backslashes:\
. docs
因此您需要在选择器中转义 :
并使用
$xml.find("mml\:math").length
var $xml = $.parseXML($("#xml").html().trim());
var leng = $($xml).find('mml\:math').length;
console.log(leng);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="xml">
<p>
<disp-formula id="disp-formula3-xxxx">
<label>(3)</label>
<alternatives>
<mml:math id="math15-xxxx" display="block">
<mml:mrow>
<mml:mi mathvariant="normal">Risk</mml:mi>
<mml:mo>=</mml:mo>
<mml:mstyle displaystyle="true">
<mml:mrow>
<mml:mo>∫</mml:mo>
</mml:mrow>
</mml:mstyle>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Load Events</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">P</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo>|</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi mathvariant="double-struck">C</mml:mi>
<mml:mspace width="0.25em"/>
<mml:mo stretchy="false">[</mml:mo>
<mml:mi mathvariant="normal">Loads</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="normal">Responses</mml:mi>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:math>
<graphic xlink:href="10.1177_1687814018802531-eq3.tif"/>
</alternatives>
</disp-formula>
</p>
</div>