У меня есть документ о том, что он похож на структуру.
Существует много <entry>
. Мой вопрос в том, как я могу вывести <uri>
для каждой записи? И еще один вопрос: как я могу выводить только USERNAME
?
Это файл, в котором я хочу получить имена пользователей http://search.twitter.com/search.atom?q=yankees
<?xml version="1.0" encoding="UTF-8"?> <feed xmlns:google="http://base.google.com/ns/1.0" xml:lang="en-US" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.w3.org/2005/Atom" xmlns:twitter="http://api.twitter.com/" xmlns:georss="http://www.georss.org/georss"> <entry> <author> <name></name> <uri>http://twitter.com/USERNAME</uri> </author> </entry>
<?php $xml = new DOMDocument; // link to ur file $xml->load(''); foreach ($xml->getElementsByTagName('entry') as $product ) { $append = array(); foreach($product->getElementsByTagName('uri') as $name ) { // Stick $name onto the array $append[] = $name; } } $result = $xml->saveXML(); print_r(str_replace('http://twitter.com/','',$result)); ?>
Вы можете использовать запросы Xpath http://www.php.net/manual/en/simplexmlelement.xpath.php или http://php.net/manual/en/domxpath.query.php
Вы должны использовать SimpleXML какой-то цикл, который проходит через все s. ( foreach($xml->entry as $entry)
цикл должен работать нормально, я думаю.)
И для второго: если это всегда http://twitter.com/USERNAME
, просто посчитайте длину префикса, чем использование substr.
Ресурсы для использования: substr , SimpleXML , SimpleXML