我有一個url返回一個XML,但我有一些問題來提取「鏈接」元素。Symfony 2與Symfony Component DomCrawler Crawler測試xml
<rss xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
<channel>
<item>
<id>123</id>
<title>my title</title>
<link>
http://example.org
</link>
</item>
</channel>
</rss>
我需要
Symfony\Component\DomCrawler\Crawler
這是我的測試,以測試它:
$crawler = $this->client->get('/my-feed');
$items = $crawler->filterXPath('//channel/item');
$this->assertGreaterThanOrEqual(1, $items->count()); // ok pass
// ...
$titles = $items->filterXPath('//title')->extract(array('_text'));
$this->assertContains("my title", $titles); // ok pass
// ...
$links = $items->filterXPath('//link')->extract(array('_text'));
$this->assertContains("example.org", $links); // KO!!! don't pass
var_dump($links); // empty string
「鏈接」 是一個保留字?
你能檢查出什麼''$物品─> filterXPath(「//鏈接」)''包含? –
它返回一個crowler對象: '代碼 對象(Symfony的\元器件\ DomCrawler \履帶)#1968(5){ [ 「URI」:保護] => NULL [ 「defaultNamespacePrefix」:「的Symfony \ Component \ DomCrawler \ Crawler「:private] => } } [」Component \ DomCrawler \ Crawler「:private] => } (1){ [「0000000049a37b5b000000002da5082f」] =>「baseHref」:「Symfony \ Component \ DomCrawler \ Crawler」:private] => NULL [「storage」:「SplObjectStorage」:private] => 陣列(2){ [ 「OBJ」] => 對象(一個DOMElement)#1970(0){ } [ 「INF」] => NULL } } }' – Vega
您的RSS XML代碼是破 – VMAtm