Jump to content

XMLReader get value of Node of specific attribute


StefanRSA

Recommended Posts

I need to import a 2Gb XML file into Mysql Db. The XML is built like the following sample

<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<Property>
<ID></ID>
<price></price>
<price></price>
<price></price>
<price></price>
<image id='1'>
</image>
<image id='2'>
</image>
<image id='3'>
</image>
</Property>
<Property>
.......
</Property>
<Properties>

I am now trying to get the id, the value of the 4th price node as well as the two first image node values...

I am stuck... Please help. My script sofar:

<?
$reader = new XMLReader();
    $reader->open($url);
    while($reader->read()){
    if($reader->nodeType == XMLReader::ELEMENT) $nodeName = $reader->name;
    if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA)    {
    if ($nodeName == 'ID'){
    $id = $reader->value;
    echo $id;
    }
    if ($nodeName == 'Price'){
    $price = $reader->value;
    echo $price['4'];
    }
    if ($nodeName == 'Image'){
    if($reader->getAttribute("id") == '1') {
    $image1= $reader->value;
    }else if($reader->getAttribute("id") == '2'){
    $image2= $reader->value;
    }
    }
    }
    }
?>

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.