2010-05-10 45 views
0

假设我想抓住this wikipedia page中的第一段。如何使用XPath或DOM & PHP或类似的东西获取标题和内容框之间的主体文本?如何从维基百科页面刮取第一段?

是否有任何PHP库?我不想使用API​​,因为它有点复杂。

注意:我只是需要在显示维基百科相关信息的页面下添加一个窗口小部件。

+0

你可能想看看维基媒体API – 2010-05-10 02:03:41

回答

0

使用下XPath表达式:

/*/h:body//h:h1 
    | 
    /*/h:body//h:h1/following::node() 
     [count(. | //h:table[@id='toc'] 
        /preceding::node() 
      ) 
     = 
     count(//h:table[@id='toc'] 
        /preceding::node() 
      ) 
     ] 

这里前缀h:绑定到XHTML命名空间()。

这种转变表明通缉的结果真的产生

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:h="http://www.w3.org/1999/xhtml" 
> 
<xsl:output omit-xml-declaration="yes" indent="yes"/> 

<xsl:template match="/"> 
    <xsl:copy-of select= 
    "/*/h:body//h:h1 
    | 
    /*/h:body//h:h1/following::node() 
     [count(. | //h:table[@id='toc'] 
        /preceding::node() 
      ) 
     = 
     count(//h:table[@id='toc'] 
        /preceding::node() 
      ) 
     ] 
    "/> 
</xsl:template> 
</xsl:stylesheet> 

当在维基百科文章的XHTML文档运行(你还需要定义两个实体&nbsp;&reg;本文档),产生想要的结果。