2011-03-25 40 views
0

我正在使用以下脚本来获取POST TITLE和RSS源的内容。它的结构是:(我想我没有犯任何错误)我应该使用什么xPath来显示请求的数据?

<div id="feedBody"> 
<div id="feedContent"> 
<div class="entry"> 
<h3>TITLE OF POST</h3> 
<div base="http://feeds.feedburner.com/blogspot/hyMBI" 
    class="feedEntryContent" 
    > CONTENT OF POST </div> 
</div> 
</div> 
</div> 




<?php 
$dom = new DOMDocument; 
libxml_use_internal_errors(TRUE); 
$dom->loadHTMLFile('http://feeds.feedburner.com/blogspot/hyMBI'); 
libxml_clear_errors(); 

$xPath = new DOMXPath($dom); 
$links = $xPath->query('????????????????'); 
foreach($links as $link) { 
    printf("%s \n", $link->nodeValue); 
} 
?> 

我应该用什么xPath来获取数据?有什么办法让他们分开? 感谢百万,希望这是我对我的项目的最后一个问题...

+0

$ dom-> load()方法,而不是$ dom-> loadHTMLFile – SilverbackNet 2011-03-25 00:49:06

回答

0

首先,您应该使用load而不是loadHTMLFile加载XML。

通过您的变量名称“$ links”来判断,我想您想要<item>元素中的<link>元素的值。因此构建一个xpath查询,它只是说://item/link

+0

您好,感谢您的回复。上面的代码是我通过教程找到的一个例子。我已经完成了你所说的,但是我怎样才能得到标题和内容而不是链接? – EnexoOnoma 2011-03-25 01:05:20

+0

这样做会以'// item',然后为每个节点发现使用'$ xPath->查询('/ title',$项目)'获取所有''节点拿到冠军的最简单方法和'$ xPath-> query('/ description',$ item)'获取内容。 – Anomie 2011-03-25 01:07:58

+0

正是我想要的线索!正如我在RSS的来源中看到的那样,我输入的路径是错误的。您的项目/链接项目/标题项目/说明发挥了诀窍!现在我试图分离图像和内容。我读了一些关于strpos的地方,但如果你能看看它,那会很棒。再次感谢! – EnexoOnoma 2011-03-25 15:25:55

0

基本的XPath://div[@class="entry"]让你的所有条目的数组。您可以通过//div[@class="entry"][1]获得第一个(或唯一)条目。就这样,你可以使用h3拿到冠军节点的文本,并div[1]得到的内容(如果它保证只有一个,否则指定类)。

你可以把它们放在一起就像//div[@class="entry"][1]/h3如果你喜欢,那么你只需要查询根节点。否则,保存新的节点,下一个查询,如:

$entries = $xPath->query('//div[@class="entry"][1]'); 
foreach($entry in $entries) { 
    $title = $xPath->evaluate('h3[1]',$entry); 
    $post = $xPath->evaluate('div[1]',$entry); 
} 

如果你的RSS返回帖子整组,可以通过全团离开过第一[1]和循环这种方式。

+0

您好,谢谢您的回复..但它不能显示任何东西,即使使用// div [@ class =“entry”] – EnexoOnoma 2011-03-25 01:15:18

+0

上面的HTML是您正在访问的Feed的实际片段吗?如果不是,则发布实际提要的一部分。 – SilverbackNet 2011-03-25 01:22:19

+0

'// DIV [@类= “进入”] [1]'”不做你说什么它看这里:。http://stackoverflow.com/questions/4672997/xslt-select-all-nodes-含一个特定子串/ 4674372#4674372 – 2011-03-25 14:55:47

相关问题