2014-11-26 2 views
2

Я загружаю XML-канал, который работает. Но кажется, что я пропустил что-то в моем запросе xpath. На самом деле я хочу прочитать комментарий узла заголовка, но он, похоже, не работает.PHP SimpleXML читать комментарий с помощью xPath

$xml = simplexml_load_file($feed_url); 
$comment = $xml->xpath('//channel/item[1]/title//comment()'); 

Подачу имеет следующую структуру

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/"> 
<channel> 
    <title>My main feed</title> 
    <description>feed description</description> 
    <link>http://www.example.com</link> 
    <language>en_US</language> 
    <lastBuildDate>Wed, 26 Nov 2014 11:44:13 UTC</lastBuildDate> 

    <item> 
     <title><!-- Special Image --></title> 
     <link></link> 
     <guid>http://www.example.com/page/345</guid> 
     <media:category>horizontal</media:category> 
     <media:thumbnails> 
      <media:thumbnail url="www.example.com/test.jpg" type="image/jpeg" height="324" width="545" /> 
     </media:thumbnails> 
    </item> 
    <item> 
     <title>Here's a normal title</title> 
     <description><![CDATA[Description Text]]></description> 
     <link></link> 
     <guid>http://www.example.com/page/123</guid> 
     <media:category>horizontal</media:category> 
    </item> 
</channel> 
</rss> 

Кто-нибудь есть ключ, как я мог бы прочитать комментарий?

+0

где указан пример подачи XML-файла? так что мы могли видеть, что вы пытаетесь достичь – Ghost

+0

@Ghost Теперь я предоставил структуру моего канала – pbaldauf

ответ

1

В качестве альтернативы вы можете использовать DOMDocument для доступа к этим комментариям. Пример:

$dom = new DOMDocument(); 
$dom->load($feed_url); 
$xpath = new DOMXpath($dom); 
$comment = $xpath->evaluate('string(//channel/item[1]/title/comment())'); 
echo $comment; 
+0

Раньше я делал это с DOMDocument. Но нет ли изменений, чтобы сделать это с помощью 'simplexml_load_file'? – pbaldauf

+0

@pbaldauf Я не думаю, что simplexml может обрабатывать комментарии, когда вы пытаетесь получить к нему доступ, он вернет родительский узел вместо – Ghost

Смежные вопросы