Skip to content
Advertisement

php Retrieve from a xml file having equal values

I am trying to recover only some values ​​from an xlsx file. The file that creates problems for me is worksheets / sheet1.xml whose structure is …

<sheetData>
    <row (attribbutes)>
        <c (attributes)>
            <v>value</v>
        </c>    
        .....
        <c (attributes)>
            <v>value</v>
        </c>
    </row>
    ......      
    <row (attribbutes)>
        <c (attributes)>
            <v>value</v>
        </c>    
        .....
        <c (attributes)>
            <v>value</v>
        </c>
    </row>
</sheetData>

my problem is that the values ​​that interest me are in different lines but they can be the same. For example: I need the number of the day of the month (e.g. 16), but that number is also the pointer that allows me to find the name of a colleague and when I read the attributes of the row I don’t find what I expect. Following is the code I use

$sheet1 = 'sheet1.xml';
$getrow = file_get_contents($sheet1);
$xmlrow   = simplexml_load_string($getrow);
foreach ($xmlrow->sheetData->row as $row_0) {
    foreach ($row_0->c as $c_0) 
    {
        foreach ($c_0->v as $v) 
        {
            if ($v[0] == $preserve) /****** This changes when search for number day of the month (if $v == $day)
            {    
                $attr_0 = $c_0->attributes();
                $row = $attr_0['r'];
                break 3;
            }
        }
    }
}

How can I get the correct value in the correct row?

Advertisement

Answer

Problem solved. In the above code $row = $attr_0['r']; $row becomes an array $row[] and analyze it. Thank Nigel Ren for givin me an inspiration

User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement