如何获取维基模板的内容?

7

有人知道如何在页面内获取模板的主体吗?

我熟悉返回存在于页面上的所有模板列表的API (链接),但是我该如何访问模板的主体呢?是否有相应的API可用?目前我只看到一种可能的方法...手动解析。我错了吗?

2个回答

8

1
我该如何获取http://en.wikipedia.org/wiki/William_Shakespeare页面上“Template:Infobox writer”的内容? - Mr. Pumpkin
当使用generatexml=1调用expandtemplates API时,它将维基文本转换为XML树,其中每个模板参数都是单独的叶子节点。 - Tgr
谢谢,这非常有帮助,因为通过API文档很难发现。还要注意,提到的两种方法非常不同:expandtemplates会给你呈现出在维基页面上看到的渲染后的(X)HTML,而revisions方法则基本上是模板的直接解析。在这两种情况下,输出都根据请求的format进行了转义。 - harpo

2
这是一个老问题,但它帮助我找出如何获取已扩展模板宏的mediawiki页面。如果你在进行转换,这非常有用。
<MW_BASEURL>/api.php?action=query&prop=revisions
   &titles=<url_encoded_page_title>&format=xml&rvprop=content&rvexpandtemplates

我正在解析从此查询返回的XML以获取扩展页面。

非常感谢!目前的MediaWiki实现对模板的处理不够好。我希望他们能在下一个版本中修复它。 - Gang Liang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接