1

これらのタグ間のデータを取得しようとしています:

<item><title>White Paper and Sales copy writer by stelladonsai</title>
<link>http://www.freelancer.com/projects/Technical-Writing-Academic-Writing/White-Paper-Sales-copy-writer.html</link>
<description>I need native English speaker to write a piece of white paper and a Sales copy.    *you must have experience.   *you must be native English speaker  *you must have sample to be attached with your cover... (Budget: &#36;30-&#36;250 USD, Jobs: Academic Writing, Technical Writing)</description>
<pubDate>Thu, 18 Oct 2012 17:23:10 -0400</pubDate>
<guid isPermaLink="false">Freelancer.com_project_2578329</guid>
</item>

私が使用しているPHPコードは次のとおりです。

$html = new DOMDocument();
@$html->loadHTML($txt);
$xpath = new DOMXPath( $html );

/*Begin Get Titles*/
$bquery = $xpath->query( "//item/title" );
$i=0;
foreach ($bquery as $b){
    $i=$i+1;
    $title[$i] = $b->nodeValue; 
}
/*End Get Titles*/

/*Begin Get Links*/
$bquery = $xpath->query( "//item/link" );
$i=0;
foreach ($bquery as $b){
    $i=$i+1;
    $link[$i] = $b->nodeValue;  
}
/*End Get Links*/

$txt は、CURL でスクレイピングした RSS フィードから取得されます。上記のコードは、タイトルと、必要な他のフィールドをうまく取得します。しかし、リンク フィールドをスクレイピングしてエコーしようとすると、何も返されません。( //item/link を他のフィールドに置き換えてみましたが、すべて機能しました)。

ここで何が間違っているのかわかりません。すべての助けに感謝します。

4

1 に答える 1

1

html ではなく XML をロードしているので、loadXML代わりに使用します。loadHTML

http://codepad.org/0FYXiwMy

于 2012-10-19T00:13:07.170 に答える