pols-xml
v2.0.1
Published
Librería simple y ligera para parsear, cargar, construir y consultar documentos XML en Node.js y TypeScript.
Downloads
44
Readme
pols-xml
Una librería de TypeScript/JavaScript simple, ligera y robusta para cargar, parsear, consultar, modificar y construir documentos XML en Node.js de forma orientada a objetos.
Características
- 📁 Carga desde archivos: Lee y parsea archivos XML directamente de forma asíncrona.
- ⚙️ Parseo rápido: Convierte cadenas XML en una estructura de objetos limpia y fuertemente tipada (
PXml). - 🔍 Consultas anidadas inteligentes: Encuentra nodos usando rutas de etiquetas anidadas con
.query()y.queryOne(). - 🛠️ Creación al vuelo: Modifica y construye árboles XML dinámicamente con
.create()y.queryOneOrCreate(). - 🖨️ Formateo limpio: Exporta a cadena XML formateada y con indentación legible mediante
.toString().
Instalación
Instala la librería y sus dependencias en tu proyecto:
npm install pols-xmlUso y Ejemplos
1. Cargar y Parsear XML
Puedes parsear una cadena XML directamente o cargarla desde un archivo local en disco.
import { PXml } from 'pols-xml';
// Cargar desde una cadena
const xmlString = '<root><item id="1">Contenido</item></root>';
const root = await PXml.parse(xmlString);
// Cargar desde un archivo en disco
const fileRoot = await PXml.loadFromFile('./ruta/al/archivo.xml');2. Consultar Nodos (query y queryOne)
Puedes realizar búsquedas de nodos hijos indicando la ruta de etiquetas secuenciales.
// Buscar todos los nodos en la ruta 'bookstore' -> 'book' -> 'author'
const authors = root.query('book', 'author');
authors.forEach(node => {
console.log(node.text); // Imprime el contenido de texto del nodo
});
// Buscar el primer nodo que coincida con la ruta
const firstTitle = root.queryOne('book', 'title');
if (firstTitle) {
console.log(`Título: ${firstTitle.text}`);
console.log(`Atributo lang: ${firstTitle.attributes?.lang}`);
}3. Crear y Modificar Nodos (create y queryOneOrCreate)
Construye o extiende el árbol XML de forma dinámica de manera segura.
// Crear un nodo 'rating' dentro de 'book'
const newRating = root.create('book', 'rating');
if (newRating) {
newRating.text = '5-stars';
}
// Obtener un nodo existente o crearlo si no existe (evita duplicados)
const commentNode = root.queryOneOrCreate('book', 'comments');
commentNode.text = 'Gran lectura';4. Generar XML Formateado (toString)
Convierte el árbol de objetos PXml de vuelta a una cadena de texto XML estructurada y tabulada.
// Imprime el XML formateado con tabulaciones
console.log(root.toString());
// Puedes pasar un número para definir la indentación inicial
console.log(root.toString(2));Licencia
ISC
