I would like to use PHP to show only the elements of an XML with the value
<disponible>si</disponible>
I have an .xml file with the following format:
<?xml version="1.0" encoding="UTF-8"?>
<libros>
<OctavioPaz>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>no</disponible>
</OctavioPaz>
<JaimeSabines>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>no</disponible>
</JaimeSabines>
<JuanRulfo>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>si</disponible>
</JuanRulfo>
<JuanJoseArreola>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>no</disponible>
</JuanJoseArreola>
<AlfonsoReyes>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>si</disponible>
</AlfonsoReyes>
<MartinLuisGuzman>
<libro>Titulo de Libro</libro>
<anio>Year</anio>
<formato>.ebook</formato>
<disponible>no</disponible>
</MartinLuisGuzman>
</libros>
I use the following code to be able to show only some nodes:
<?php
$xml= "./libros/lista.xml";
$xmlDoc = new DOMDocument();
$xmlDoc->load($xml);
$disponible = $xmlDoc->getElementsByTagName("disponible");
$available = $disponible->length;
echo $available;
?>
The problem is that it counts all the <disponible></disponible>
with either si
and no
, resulting in: 6.
Expected result:
Libros Disponibles ahora: 2
How could I do this?