Passer au contenu du pied de page
AIDE NODE

xml2js npm (Comment cela fonctionne pour les développeurs)

Les développeurs peuvent facilement intégrer l'analyse des données XML et les fonctionnalités de création de PDF dans leurs applications en combinant XML2JS avec IronPDF dans Node.js. Package Node.js apprécié, XML2JS facilite la transformation des données XML en objets JavaScript, ce qui simplifie la manipulation et l'utilisation programmatiques du matériel XML. Inversement, IronPDF se spécialise dans la production de documents PDF de haute qualité avec des tailles de pages, des marges et des en-têtes ajustables à partir de HTML, y compris le matériel créé dynamiquement.

Les développeurs peuvent désormais créer dynamiquement des rapports PDF, des factures ou d'autres matériaux imprimables directement à partir de sources de données XML grâce à XML2JS et IronPDF. Afin d'automatiser les processus de création de documents et de garantir précision et flexibilité dans la gestion des données basées sur XML pour les sorties PDF dans les applications Node.js, cette intégration utilise les forces des deux bibliothèques.

Qu'est-ce que xml2js?

Un package Node.js appelé XML2JS facilite l'analyse et la création d'un convertisseur simple de XML (Extensible Markup Language) en objet JavaScript. En offrant des moyens d'analyser des fichiers ou des textes XML et de les convertir en objets JavaScript structurés, il rend plus facile le traitement des documents XML. Cette procédure donne aux applications la liberté d'interpréter et d'utiliser les données XML en fournissant des options pour gérer uniquement les attributs XML, le contenu textuel, les espaces de noms, fusionner des attributs ou des attributs clés, et d'autres caractéristiques spécifiques au XML.

xml2js npm (Comment cela fonctionne pour les développeurs) : Figure 1

La bibliothèque peut gérer de grands documents XML ou des situations où une analyse non-bloquante est nécessaire car elle prend en charge à la fois les opérations d'analyse synchrone et asynchrone. De plus, XML2JS offre des mécanismes pour valider et résoudre les erreurs lors de la conversion de XML en objets JavaScript, garantissant ainsi la stabilité et la fiabilité des opérations de traitement des données. Tout bien considéré, les applications Node.js utilisent fréquemment XML2JS pour intégrer des sources de données basées sur XML, configurer des logiciels, modifier des formats de données et simplifier les procédures de tests automatisés.

XML2JS est un outil flexible et indispensable pour travailler avec des données XML dans des applications Node.js grâce aux caractéristiques suivantes :

Analyse XML

Avec l'aide de XML2JS, les développeurs peuvent plus rapidement accéder aux données XML et les manipuler en utilisant la syntaxe JavaScript bien connue en simplifiant le traitement des chaînes ou fichiers XML en objets JavaScript.

Conversion d'objets JavaScript

Travailler avec des données XML dans des applications JavaScript est simple grâce à sa conversion fluide de données XML en objets JavaScript structurés.

Options configurables

Une variété d'options de configuration sont fournies par XML2JS pour vous permettre de modifier la manière dont les données XML sont analysées et converties en objets JavaScript. Cela couvre la gestion des espaces de noms, du contenu textuel, des attributs, et d'autres éléments.

Conversion bidirectionnelle

Les modifications de données en aller-retour sont possibles grâce à ses capacités de conversion bidirectionnelle, qui permettent de transformer des objets JavaScript en simples chaînes XML.

Analyse asynchrone

Les grands documents XML peuvent être bien gérés avec le support de la bibliothèque pour les opérations d'analyse asynchrone, ce qui n'interfère pas avec la boucle d'événements de l'application.

Gestion des erreurs

Pour gérer les problèmes de validation et les erreurs d'analyse pouvant survenir lors du processus d'analyse et de transformation XML, XML2JS offre des méthodes robustes de gestion des erreurs.

Intégration avec Promesses

Elle fonctionne bien avec les Promesses JavaScript, rendant les modèles de code asynchrone pour le traitement des données XML plus clairs et faciles à gérer.

Hooks d'analyse personnalisables

La flexibilité des processus de traitement des données peut être augmentée par les développeurs en créant des hooks d'analyse personnalisés qui leur offrent des options spéciales pour intercepter et modifier le comportement d'analyse XML.

Créer et configurer xml2js

L'installation de la bibliothèque et sa configuration pour répondre à vos besoins sont les premières étapes pour utiliser XML2JS dans une application Node.js. Voici un mode d'emploi détaillé pour configurer et créer XML2JS.

Installer XML2JS npm

Assurez-vous d'abord que npm et Node.js sont installés. XML2JS peut être installé avec npm :

npm install xml2js
npm install xml2js
SHELL

Utilisation basique de XML2JS

Voici un simple exemple d'utilisation de XML2JS pour analyser le texte XML en objets JavaScript :

const xml2js = require('xml2js');

// Example XML content
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser
const parser = new xml2js.Parser();

// Parse XML content
parser.parseString(xmlContent, (err, result) => {
  if (err) {
    console.error('Error parsing XML:', err);
    return;
  }
  console.log('Parsed XML to JavaScript object:', result);
});
const xml2js = require('xml2js');

// Example XML content
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser
const parser = new xml2js.Parser();

// Parse XML content
parser.parseString(xmlContent, (err, result) => {
  if (err) {
    console.error('Error parsing XML:', err);
    return;
  }
  console.log('Parsed XML to JavaScript object:', result);
});
JAVASCRIPT

xml2js npm (Comment cela fonctionne pour les développeurs) : Figure 2

Options de Configuration

XML2JS offre une gamme d'options de configuration et de paramètres par défaut qui vous permettent de modifier le comportement d'analyse. Voici un exemple de comment définir des paramètres par défaut d'analyse pour XML2JS :

const xml2js = require('xml2js');

// Example XML content
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser with options
const parser = new xml2js.Parser({
  explicitArray: false,  // Converts child elements to objects instead of arrays when there is only one child
  trim: true  // Trims leading/trailing whitespace from text nodes
});

// Parse XML content
parser.parseString(xmlContent, (err, result) => {
  if (err) {
    console.error('Error parsing XML:', err);
    return;
  }
  console.log('Parsed XML to JavaScript object with options:', result);
});
const xml2js = require('xml2js');

// Example XML content
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser with options
const parser = new xml2js.Parser({
  explicitArray: false,  // Converts child elements to objects instead of arrays when there is only one child
  trim: true  // Trims leading/trailing whitespace from text nodes
});

// Parse XML content
parser.parseString(xmlContent, (err, result) => {
  if (err) {
    console.error('Error parsing XML:', err);
    return;
  }
  console.log('Parsed XML to JavaScript object with options:', result);
});
JAVASCRIPT

Gérer l'analyse asynchrone

L'analyse asynchrone est prise en charge par XML2JS, ce qui est utile pour gérer de grands documents XML sans arrêter la boucle d'événements. Voici un exemple de comment utiliser la syntaxe async/await avec XML2JS :

const xml2js = require('xml2js');

// Example XML content (assume it's loaded asynchronously, e.g., from a file)
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser
const parser = new xml2js.Parser();

// Async function to parse XML content
async function parseXml(xmlContent) {
  try {
    const result = await parser.parseStringPromise(xmlContent);
    console.log('Parsed XML to JavaScript object (async):', result);
  } catch (err) {
    console.error('Error parsing XML (async):', err);
  }
}

// Call async function to parse XML content
parseXml(xmlContent);
const xml2js = require('xml2js');

// Example XML content (assume it's loaded asynchronously, e.g., from a file)
const xmlContent = `
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
`;

// Configure XML2JS parser
const parser = new xml2js.Parser();

// Async function to parse XML content
async function parseXml(xmlContent) {
  try {
    const result = await parser.parseStringPromise(xmlContent);
    console.log('Parsed XML to JavaScript object (async):', result);
  } catch (err) {
    console.error('Error parsing XML (async):', err);
  }
}

// Call async function to parse XML content
parseXml(xmlContent);
JAVASCRIPT

Démarrage

Pour utiliser IronPDF et XML2JS dans une application Node.js, vous devez d'abord lire des données XML puis créer un document PDF à partir du contenu ayant été traité. Voici un guide détaillé qui vous aidera à installer et configurer ces bibliothèques.

Qu'est-ce qu'IronPDF ?

La bibliothèque IronPDF est une puissante bibliothèque Node.js pour travailler avec des PDF. Son objectif est de convertir le contenu HTML en documents PDF d'une qualité exceptionnelle. Elle simplifie le processus de transformation d'HTML, de CSS, et d'autres fichiers JavaScript en PDF correctement formatés sans compromettre le contenu en ligne d'origine. C'est un outil très utile pour les applications web qui ont besoin de produire des documents dynamiques et imprimables tels que des factures, des certifications et des rapports.

IronPDF a plusieurs caractéristiques, y compris des paramètres de page personnalisables, des en-têtes, des pieds de page, et la capacité d'insérer des polices et des images. Il prend en charge les mises en page et styles complexes pour garantir que toutes les sorties PDF de test suivent le design spécifié. De plus, IronPDF contrôle l'exécution de JavaScript au sein du HTML, permettant un rendu précis de contenu dynamique et interactif.

xml2js npm (Comment cela fonctionne pour les développeurs) : Figure 3

Caractéristiques de IronPDF

Génération de PDF à partir de HTML

Convertissez du HTML, CSS, et JavaScript en PDF. Prend en charge deux normes web modernes : les media queries et le design réactif. Utile pour utiliser HTML et CSS pour décorer dynamiquement des factures PDF, des rapports et des documents.

Édition de PDF

Il est possible d'ajouter du texte, des images, et d'autres contenus à des PDF déjà existants. Extraire du texte et des images à partir de fichiers PDF. Fusionner plusieurs PDFs en un seul fichier. Diviser les fichiers PDF en plusieurs documents distincts. Ajouter des en-têtes, pieds de page, annotations, et filigranes.

Performance et Fiabilité

Dans les contextes industriels, les hautes performances et la fiabilité sont des attributs de design souhaitables. Gère facilement de grands ensembles de documents.

Installer IronPDF

Pour obtenir les outils nécessaires pour travailler avec des PDF dans des projets Node.js, installez le package IronPDF.

npm install @ironsoftware/ironpdf
npm install @ironsoftware/ironpdf
SHELL

Analyser le XML et générer un PDF

Pour illustrer, générons un fichier XML de base appelé exemple.xml :

<!-- example.xml -->
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
<!-- example.xml -->
<bookstore>
  <book category="fiction">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
  </book>
  <book category="nonfiction">
    <title>Thinking, Fast and Slow</title>
    <author>Daniel Kahneman</author>
  </book>
</bookstore>
XML

Créez le script Node.js generatePdf.js, qui lit le fichier XML, utilise XML2JS pour l'analyser en un objet JavaScript, et utilise ensuite IronPDF pour créer un PDF à partir de l'objet résultant des données analysées.

// generatePdf.js
const fs = require('fs');
const xml2js = require('xml2js');
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF with license if necessary
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Function to read and parse XML
const parseXml = async (filePath) => {
  const parser = new xml2js.Parser();
  const xmlContent = fs.readFileSync(filePath, 'utf8');
  return await parser.parseStringPromise(xmlContent);
};

// Function to generate HTML content from the parsed object
function generateHtml(parsedXml) {
  let htmlContent = `
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Bookstore</title>
      <style>
        body { font-family: Arial, sans-serif; }
        .book { margin-bottom: 20px; }
      </style>
    </head>
    <body>
      <h1>Bookstore</h1>
  `;

  // Iterate over each book to append to the HTML content
  parsedXml.bookstore.book.forEach(book => {
    htmlContent += `
      <div class="book">
        <h2>${book.title}</h2>
        <p><strong>Category:</strong> ${book.$.category}</p>
        <p><strong>Author:</strong> ${book.author}</p>
      </div>
    `;
  });

  htmlContent += `
    </body>
    </html>
  `;
  return htmlContent;
}

// Main function to generate PDF
const generatePdf = async () => {
  try {
    const parser = await parseXml('./example.xml');
    const htmlContent = generateHtml(parser);

    // Convert HTML to PDF
    IronPdf.PdfDocument.fromHtml(htmlContent).then((pdfres) => {
      const filePath = `${Date.now()}.pdf`;
      pdfres.saveAs(filePath).then(() => {
        console.log('PDF saved successfully!');
      }).catch((e) => {
        console.log(e);
      });
    });
  } catch (error) {
    console.error('Error:', error);
  }
};

// Run the main function
generatePdf();
// generatePdf.js
const fs = require('fs');
const xml2js = require('xml2js');
const IronPdf = require('@ironsoftware/ironpdf');

// Configure IronPDF with license if necessary
var config = IronPdf.IronPdfGlobalConfig;
config.setConfig({ licenseKey: '' });

// Function to read and parse XML
const parseXml = async (filePath) => {
  const parser = new xml2js.Parser();
  const xmlContent = fs.readFileSync(filePath, 'utf8');
  return await parser.parseStringPromise(xmlContent);
};

// Function to generate HTML content from the parsed object
function generateHtml(parsedXml) {
  let htmlContent = `
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Bookstore</title>
      <style>
        body { font-family: Arial, sans-serif; }
        .book { margin-bottom: 20px; }
      </style>
    </head>
    <body>
      <h1>Bookstore</h1>
  `;

  // Iterate over each book to append to the HTML content
  parsedXml.bookstore.book.forEach(book => {
    htmlContent += `
      <div class="book">
        <h2>${book.title}</h2>
        <p><strong>Category:</strong> ${book.$.category}</p>
        <p><strong>Author:</strong> ${book.author}</p>
      </div>
    `;
  });

  htmlContent += `
    </body>
    </html>
  `;
  return htmlContent;
}

// Main function to generate PDF
const generatePdf = async () => {
  try {
    const parser = await parseXml('./example.xml');
    const htmlContent = generateHtml(parser);

    // Convert HTML to PDF
    IronPdf.PdfDocument.fromHtml(htmlContent).then((pdfres) => {
      const filePath = `${Date.now()}.pdf`;
      pdfres.saveAs(filePath).then(() => {
        console.log('PDF saved successfully!');
      }).catch((e) => {
        console.log(e);
      });
    });
  } catch (error) {
    console.error('Error:', error);
  }
};

// Run the main function
generatePdf();
JAVASCRIPT

Une façon facile de convertir des données XML et d'analyser plusieurs fichiers dans des documents PDF est de combiner IronPDF et XML2JS dans une application Node.js. En utilisant XML2JS, le contenu XML de plusieurs fichiers est analysé dans un objet JavaScript une fois que le fichier XML est d'abord lu en utilisant le module fs de Node.js. Ensuite, le texte HTML qui forme la base du PDF est généré dynamiquement à l'aide de ces données traitées.

Le script commence par lire le texte XML d'un fichier et utiliser xml2js pour l'analyser en un objet JavaScript. À partir de l'objet de données analysé, une fonction personnalisée crée le contenu HTML, en le structurant avec les éléments requis — par exemple, les auteurs et les titres pour une librairie. Ce HTML est ensuite rendu en un tampon PDF à l'aide d'IronPDF. Le PDF produit est ensuite enregistré dans le système de fichiers.

xml2js npm (Comment cela fonctionne pour les développeurs) : Figure 4

En utilisant la conversion HTML-to-PDF efficace d'IronPDF et les capacités robustes d'analyse XML de XML2JS, cette méthode offre une façon simplifiée de créer des PDF à partir de données XML dans des applications Node.js. La connexion permet de transformer des données XML dynamiques en documents PDF imprimables et bien formatés. Cela en fait un choix parfait pour les applications qui nécessitent la génération automatisée de documents à partir de sources XML.

xml2js npm (Comment cela fonctionne pour les développeurs) : Figure 5

Conclusion

En somme, XML2JS et IronPDF ensemble dans une application Node.js fournissent un moyen puissant et adaptable de transformer des données XML en documents PDF de haute qualité. L'analyse efficace de XML en objets JavaScript à l'aide de XML2JS rend l'extraction et la manipulation des données simples. Une fois les données analysées, elles peuvent être dynamiquement modifiées en texte HTML, qu'IronPDF peut ensuite facilement convertir en fichiers PDF bien structurés.

Les applications qui nécessitent la création automatisée de documents comme des rapports, des factures et des certificats à partir de sources de données XML peuvent trouver cette combinaison particulièrement utile. Les développeurs peuvent garantir des sorties PDF précises et esthétiques, rationaliser les flux de travail et améliorer la capacité des applications Node.js à gérer les tâches de génération de documents en utilisant les avantages des deux bibliothèques.

IronPDF offre aux développeurs plus de fonctionnalités avec un développement plus efficient, tout en utilisant les systèmes et la suite hautement flexibles d'Iron Software.

Il est plus facile pour les développeurs de choisir le meilleur modèle lorsque les options de licence sont explicites et spécifiques au projet. Ces fonctionnalités permettent aux développeurs de résoudre une variété de problèmes de manière simple, efficace et cohérente.

Darrius Serrant
Ingénieur logiciel Full Stack (WebOps)

Darrius Serrant est titulaire d'un baccalauréat en informatique de l'université de Miami et travaille comme ingénieur marketing WebOps Full Stack chez Iron Software. Attiré par le codage dès son plus jeune âge, il a vu l'informatique comme à la fois mystérieuse et accessible, en faisant le ...

Lire la suite