PHP读取XML属性

时间:2010-06-21 14:25:26

标签: php xml properties

我有以下由webservice生成的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 个答案:

答案 0 :(得分:4)

DOM

$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 is an Interface Standard defined by the W3C并且可以找到以多种语言实现,因此了解API是值得的。没错,它可能比SimpleXML更冗长,但它最终也更强大。如果你已经使用DOM一段时间了,你不想再回去了。

答案 1 :(得分:0)

答案 2 :(得分:0)

我自己解决了这个问题。

$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'];