我想在API响应MediaWiki中获取<math>
标记的内容。
我尝试过使用此查询:
https://en.wikipedia.org/w/api.php?action=query&prop=extracts&format=xml&titles=delta-v
我正在获取有效的xml文件,但代替
我得到了:
<dl><dd></dd></dl>
我想要的是:
<math>\Delta{v} = \int_{t_0}^{t_1} {\frac {|T|} {m}}\, dt</math>
可在此处通过“修改”按钮获取:http://en.wikipedia.org/w/index.php?title=Delta-v&action=edit
这是通过API以某种方式提供的吗?
答案 0 :(得分:4)
您需要使用MediaWiki的本机API函数查询整个页面源:
这将为您提供与编辑页面时完全相同的内容。
prop=extracts
查询由扩展程序TextExtracts实现,并不总是与其他扩展程序(如Math)生成的代码内容一起使用。它可能被认为是TextExtracts中的一个错误,但考虑到MediaWiki中页面呈现的复杂性,以及各种扩展添加到内容的方式,它可能永远不会捕获所有内容。
答案 1 :(得分:0)
在原始链接中,您可以获得MathML渲染,包括注释元素<annotation encoding="application/x-tex">
中的TeX代码。
<dd>
<span>
<span>
<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \Delta {v}=\int _{t_{0}}^{t_{1}}{\frac {|T(t)|}{m(t)}}\,dt}">
<semantics>
<mrow class="MJX-TeXAtom-ORD">
<mstyle displaystyle="true" scriptlevel="0">
<mi mathvariant="normal">Δ</mi>
<mrow class="MJX-TeXAtom-ORD">
<mi>v</mi>
</mrow>
<mo>=</mo>
<msubsup>
<mo>∫</mo>
<mrow class="MJX-TeXAtom-ORD">
<msub>
<mi>t</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>0</mn>
</mrow>
</msub>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<msub>
<mi>t</mi>
<mrow class="MJX-TeXAtom-ORD">
<mn>1</mn>
</mrow>
</msub>
</mrow>
</msubsup>
<mrow class="MJX-TeXAtom-ORD">
<mfrac>
<mrow>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
<mi>T</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
<mrow class="MJX-TeXAtom-ORD">
<mo stretchy="false">|</mo>
</mrow>
</mrow>
<mrow>
<mi>m</mi>
<mo stretchy="false">(</mo>
<mi>t</mi>
<mo stretchy="false">)</mo>
</mrow>
</mfrac>
</mrow>
<mspace width="thinmathspace" />
<mi>d</mi>
<mi>t</mi>
</mstyle>
</mrow>
<annotation encoding="application/x-tex">{\displaystyle \Delta {v}=\int _{t_{0}}^{t_{1}}{\frac {|T(t)|}{m(t)}}\,dt}</annotation>
</semantics>
</math>
</span>
</span>
</dd>