Les hago notar la existencia del módulo XML::Bare.
Se trata de un programa que puede interpretar código XML a una gran velocidad, usando una librería externa escrita en C++.
En la misma página de manual se indican sus prestaciones en cuanto a tiempos de lectura e interpretación comparadas con otros módulos XML:
- Código: Seleccionar todo
-Module- load parse total
XML::Bare 1 1 1
XML::TreePP 2.3063 33.1776 6.1598
XML::Parser::EasyTree 4.9405 25.7278 7.4571
XML::Handler::Trees 7.2303 26.5688 9.6447
XML::Trivial 5.0636 12.4715 7.3046
XML::Smart 6.8138 78.7939 15.8296
XML::Simple 2.7115 195.9411 26.5704
XML::SAX::Simple 8.7792 170.7313 28.3634
XML::Twig 27.8266 56.4476 31.3594
XML::Grove::Builder 7.1267 26.1672 9.4064
XML::XPath::XMLParser 9.7783 35.5486 13.0002
XML::LibXML (notree) 11.0038 4.5758 10.6881
XML::Parser (notree) 4.4698 17.6448 5.8609
XML::Parser::Expat(notree) 3.7681 50.0382 6.0069
XML::Descent (notree) 6.0525 37.0265 11.0322
Tiny XML (exe) 1.0095
EzXML (exe) 1.1284
XMLIO (exe) 1.0165
Pero... hay una contrapartida... XML::Bare no soporta todas las posibles combinaciones que aparecen en un fichero xml. Hay que prestar atención a las excepciones y limitaciones, como por ejemplo que los nodos no pueden contener subnodos inmediatos. Ejemplo:
Using xml Syntax Highlighting
En este caso, el subnodo <subnode/> no es interpretado (y lo que le sigue), por lo que el valor de node es text.
Pero para casos sencillos, puede ser una buena forma de mejorar las prestaciones de nuestros programas.