【问题标题】:How to get wiki template's content?如何获取 wiki 模板的内容?
【发布时间】:2011-11-17 00:32:45
【问题描述】:

有人知道如何访问页面内的模板正文吗?

我熟悉返回所有存在的模板列表的 API on the page,但我如何才能访问模板的主体?有没有这方面的API?现在我只看到一种可能的方法......手动解析它。我错了吗?

【问题讨论】:

    标签: api templates mediawiki


    【解决方案1】:

    您可以使用expandtemplates API 调用,或rvexpandtemplates 参数用于revisions API 调用。

    【讨论】:

    • 以及如何在en.wikipedia.org/wiki/William_Shakespeare 页面上获取“模板:信息框编写器”的内容?
    • expandtemplates api,当用generatexml=1 调用时,将wikitext 转换为一个XML 树,其中每个模板参数都是一个单独的叶子。
    • 谢谢,这非常有帮助,因为通过 API 文档很难发现它。另请注意,提到的两种方法完全不同:expandtemplates 为您提供在 wiki 页面上看到的渲染 (X)HTML,而 revisions 方法本质上是对模板的直接解析。在这两种情况下,输出都会根据请求的format 进行转义。
    【解决方案2】:

    这是一个老问题,但它帮助我弄清楚了如何获取扩展模板宏的 mediawiki 页面。如果您正在进行转换,这非常有用。

    <MW_BASEURL>/api.php?action=query&prop=revisions
       &titles=<url_encoded_page_title>&format=xml&rvprop=content&rvexpandtemplates
    

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

    【讨论】:

    • 非常感谢! mediawiki 的当前实现不能很好地处理模板。我希望他们能在下一个版本中修复它。
    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2013-08-16
    • 2016-04-21
    • 2016-11-13
    相关资源
    最近更新 更多