我有一个php脚本使用xmlreader来读取xml文件,然后将数据传递给我的数据库,这一切都正常。我虽然在努力拍摄这些照片。我只能弄清楚如何获得每个属性的第一张图片。这是一个xml的样本
<properties>
<Property>
<propertyid>17229-122</propertyid>
<lastUpdateDate>2017-08-02</lastUpdateDate>
<category>Residential For Sale</category>
<images>
<image number="1">
<image>domain.com/imagefile1212.jpg</image>
<alttext/>
</image>
<image number="2">
<image>domain.com/imagefile12dfs2.jpg</image>
<alttext/>
</image>
<image number="3">
<image>domain.com/imagefile1212.jpg</image>
<alttext/>
</image>
</images>
我的php看起来像这样
$theFeed = "locationofthexmlfile.xml";
$reader = new XMLReader();
$reader->open($theFeed);
while($reader->read()) {
if ($reader->nodeType == XMLReader::ELEMENT && $reader->name == 'Property') {
$propCount++;
// Get children of property
$doc = new DOMDocument();
$xml = simplexml_import_dom($doc->importNode($reader->expand(), true));
#### get the data
$ref = $xml->propertyid; // this works fine
$img1 = $xml->images->image->image; /// this gets the first image
?????? how to I get all the other images like $img2,$img3 etc
}
}
我想我的问题是如何获取图像节点的所有子节点?但我不能把它当作我们的。或者我应该通过查找atrribute number ='1'等来定位每个图像。
非常感谢任何帮助或指示
答案 0 :(得分:0)
我建议使用“children()”来访问所有节点。
例如:
$Img = $xml->Images->children();
或
$Img = $xml->Images->children()->children();
(取决于嵌套数组的深度)
之后,您可以轻松地循环使用“for each” 或者通过
为每个变量赋值$Img1 = $Img[0];
$Img2 = $Img[1];
$Img3 = $Img[2];
这是你在寻找什么? :)