PHP читает свойства XML - PullRequest
0 голосов
/ 21 июня 2010

У меня есть следующие данные XML, которые генерируются веб-сервисом

<?xml version="1.0" encoding="UTF-8"?> 
<rsp xmlns="http://worldcat.org/xid/isbn/" stat="ok">
      <isbn   oclcnum="263710087 491996179 50279560 60857040 429386124 44597307" lccn="00131084" form="AA BC" year="2002" lang="eng" ed="1st American ed." title="Harry Potter and the goblet of fire"  author="J.K. Rowling."  publisher="Scholastic Inc."  city="New York [u.a.]"    url="http://www.worldcat.org/oclc/263710087?referer=xid">9780439139601</isbn>

</rsp>

Мне нужно прочитать данные в теге 'isbn', точнее, значение свойства 'title'. Как бы я сделал это в PHP.

Спасибо

Ответы [ 3 ]

4 голосов
/ 21 июня 2010

С ДОМ

$dom = new DOMDocument;
$dom->load('books.xml'); // or from URL    
foreach($dom->getElementsByTagName('isbn') as $node) {
    echo $node->getAttribute('title');
}

С SimpleXml :

$sxe = simplexml_load_file('filename.xml'); // or from URL
foreach($sxe->isbn as $node) {
    echo $node['title'];
}

Просто мой 2c, почему вы хотите использовать DOM: SimpleXML действительно выглядит просто, но простота в этом случае означает отсутствие контроля. DOM не намного сложнее в использовании и может сделать больше. DOM - это стандарт интерфейса, определенный W3C , и его можно найти реализованным на многих языках, поэтому стоит знать API. Правда, он может быть немного более многословным, чем SimpleXML, но в конечном итоге он более мощный. Если вы работали с DOM в течение некоторого времени, вы не хотите возвращаться.

0 голосов
/ 21 июня 2010

Я решил это сам.

$xmldata= file_get_contents("http://xisbn.worldcat.org/webservices/xid/isbn/9780439139601?method=getMetadata&format=xml&fl=*");
$xml= new SimpleXMLElement($xmldata);
print $xml->isbn[0]['title'];
0 голосов
/ 21 июня 2010

Использование SimpleXML или DOM .Вот несколько примеров использования: http://www.php.net/manual/en/simplexml.examples-basic.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...