我为解析xml创建代码。它就像这样
<?php
$xmlDocument = '<?xml version="1.0"?>
<toys>
<toy code="10001">
<name>Ben 10 Watch</name>
<type>Battery Toys</type>
</toy>
<toy code="10002">
<name>Angry Birds Gun</name>
<type>Mechanical Toys</type>
</toy>
</toys>';
$xml = new XMLReader();
$xml->XML($xmlDocument);
while( $xml->read() ) {
if($xml->name == "toy") {
print "ID:" . $xml->getAttribute("code") . "<br/>";
print $xml->readInnerXML() . "<br/>";
$xml->next();
}
}
?>
可以正常工作,没有问题,并按预期输出
ID:10001
Ben 10 Watch Battery Toys
ID:10002
Angry Birds Gun Mechanical Toys
现在我只想在这个或巨大的xml文件中看到一个项目如何获得一个特定的项目。 为此我创建了这样的代码。
<?php
$xmlDocument = '<?xml version="1.0"?>
<toys>
<toy code="10001">
<name>Ben 10 Watch</name>
<type>Battery Toys</type>
</toy>
<toy code="10002">
<name>Angry Birds Gun</name>
<type>Mechanical Toys</type>
</toy>
</toys>';
$xml = new XMLReader();
$xml->XML($xmlDocument);
$xml->read(0);
$xml->name == "toy";
print "ID:" . $xml->getAttribute("code") . "<br/>";
print $xml->readInnerXML() . "<br/>";
?>
它没有预期的我只想要打印一个项目。 这该怎么做 。 问题摘要是如何获得特定的一个项目。
答案 0 :(得分:0)
变化:
$xml->read(0);
$xml->name == "toy";
print "ID:" . $xml->getAttribute("code") . "<br/>";
print $xml->readInnerXML() . "<br/>";
为:
$xml->read();
$xml->read();
if($xml->name == "toy")
{
print "ID:" . $xml->getAttribute("code") . "<br/>";
print $xml->readInnerXML() . "<br/>";
}