我在提取以下 XML 的属性时遇到问题。我可以获得以下属性:
<Formats>
<Format Type="6" Price="7.00" MaxDownloads="3" Status="active" ExclusiveRights="CA AU NZ ZA GB IE " NotForSale="AU NZ " />
</Formats>
但我正在努力获取以下属性:
<Contributors>
<Contributor Code="A01" Text="By (author)">Cairns, Warwick</Contributor>
</Contributors>
我需要“A01”和“Cairns, Warwick”。
任何帮助是极大的赞赏。
朱利安
下面的 XML:
<?xml version="1.0"?>
<Extract>
<EBook EAN="9781849892100">
<Title>About The Size Of It</Title>
<SubTitle>A Common Sense Approach To How People Measure Things</SubTitle>
<Publisher>General Non-Fiction</Publisher>
<Imprint>Macmillan</Imprint>
<PublicationDate>07/04/2011</PublicationDate>
<Contributors>
<Contributor Code="A01" Text="By (author)">Cairns, Warwick</Contributor>
</Contributors>
<BicSubjects>
<Bic Code="PDZ">Popular science</Bic>
</BicSubjects>
<Formats>
<Format Type="6" Price="7.00" MaxDownloads="3" Status="active" ExclusiveRights="CA AU NZ ZA GB IE " NotForSale="AU NZ " />
</Formats>
<ShortDescription> A serious and seriously funny book about weights and measures. It explains what they are, how they come about and how they are formed and shaped by the one guiding principle of measurement that no one ever mentions: that most of us have better things to think about. This is the only book devoted to the mishmash of bodges, estimates </ShortDescription>
<PhysicalEditionEan>9780330450300</PhysicalEditionEan>
</EBook>
</Extract>
到目前为止,我的代码可以获得所需的值。属性没有通过:(
$z = new XMLReader;
$z->open('files/eBiblio.xml');
$doc = new DOMDocument;
# move to the first node
while ($z->read() && $z->name !== 'EBook');
# now that we're at the right depth, hop to the next <product/> until the end of the tree
while ($z->name === 'EBook')
{
$node = simplexml_import_dom($doc->importNode($z->expand(), true));
# Get the value of each node
$title = mysql_real_escape_string($node->Title);
$Subtitle = mysql_real_escape_string($node->SubTitle);
$ShortDescription = mysql_real_escape_string($node->ShortDescription);
$Publisher = mysql_real_escape_string($node->Publisher);
$Imprint = mysql_real_escape_string($node->Imprint);
# Get attributes
$isbn = $z->getAttribute('EAN');
$contributor = $node->Contributors;
$author = $contributor[0]->Contributor;
$author = mysql_real_escape_string($author);
$BicSubjects = $node->BicSubjects;
$Bic = $BicSubjects[0]->Bic;
$Bic = mysql_real_escape_string($Bic);
$formats = $node->Formats;
$type = $formats[0]->Format;
$price = $type[0]['Price'];
$ExclusiveRights = $type[0]['ExclusiveRights'];
$NotForSale = $type[0]['NotForSale'];
# echo "<pre>".print_r($node,true)."</pre>";
# die();