如何解析信息框内部内{{}}(花括号)的属性值(How to parse the attribute

2019-09-26 09:58发布

在信息框在维基百科的一些属性值也花括号{{}}。有的时候他们还林家。我需要的牙套,其中显示维基百科网页内的值。 我读这些模板也..任何人都可以给我一些链接或指导我我该如何处理呢?

Answer 1:

双大括号{{}}定义了某种神奇的字眼,变量,解析器函数,或模板...帮助上可以找到的呼叫MediaWiki.org/.../Manual:Magic_words 。 小线条,看起来像| 被称为管道并用于作为分隔符,其允许wikicore解析引擎,以限定可与口令字,变量,解析器功能,或模板中使用的参数..



Answer 2:

希望这将有助于大家谁遇到这同一个问题。 考虑到你将用PHP解析的信息框,您可以使用此: http://www.mywiki.com/wiki/api.php?format=xml&action=query&titles=PAGE_TITLE_THAT_CONTAINS_AN_INFOBOX&prop=revisions&rvprop=content&rvgeneratexml=1

“rvgeneratexml”被设置为真(1),这将使XML节点<rev>生成的属性“分析树”含有XML格式的信息框的信息。

然后,在PHP,可以加载整个信息( <api>一切,包括<rev></api>用SimpleXML:

$xml = simplexml_load_file($url);

然后你就可以得到“分析树”属性,并加载字符串加载模板的信息:

$template = simplexml_load_string($xml->query->pages->page->revisions->rev->attributes()->parsetree);
$template = $template->template; // If more than 1 template, check template[0], [1], etc

然后,通过使用正确的结构,你可以像访问内容:

if ($template->part[0]->name='name')
    $film = $template->part[0]->value;

然后, $film将包含影片的名称( ->name是参数的名称,以及->value是它的值)。



文章来源: How to parse the attributes value inside {{}} (curly braces) inside a infobox