我有以下由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中执行此操作。
由于
答案 0 :(得分:4)
$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'];