2011-09-14 60 views
4

有誰知道如何訪問頁面內的模板的身體?如何獲取wiki模板的內容?

我很熟悉API,它返回存在的所有模板列表on the page,但我如何才能訪問模板的正文?有沒有任何API?現在我只看到一種可能的方法...手動解析它。我錯了嗎?

回答

6

對於revisions API調用,您可以使用expandtemplates API調用或rvexpandtemplates參數。

+0

以及如何獲取http://en.wikipedia.org/wiki/William_Shakespeare頁面上「Template:Infobox writer」的內容? –

+0

當用'generatexml = 1'調用expandtemplates api時,將wikitext轉換爲XML樹,其中每個模板參數都是獨立的葉。 – Tgr

+0

謝謝!得到它了。正是我需要的。 –

2

這是一個老問題,但它幫助我弄清楚如何獲取擴展了模板宏的mediawiki頁面。如果您正在進行轉換,非常有用。

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

我解析從此查詢返回的xml以獲取展開的頁面。

+0

非常感謝!目前的mediawiki實施並沒有很好地處理模板。我希望他們能在下一個版本中解決它。 –