Maison interface Web Questions et réponses frontales Comment convertir un objet en fichier XML en javascript

Comment convertir un objet en fichier XML en javascript

Apr 25, 2023 pm 06:19 PM

Dans le développement front-end, nous avons souvent besoin de convertir des objets JavaScript en fichiers XML pour faciliter le partage de données dans différentes applications. Bien qu'il soit possible d'écrire manuellement du code pour générer du XML, cette méthode prend du temps et est sujette aux erreurs. Par conséquent, cet article présentera plusieurs méthodes pour convertir des objets JavaScript en fichiers XML. J'espère qu'il vous sera utile.

Méthode 1 : Utiliser la bibliothèque js2xmlparser

js2xmlparser est une bibliothèque permettant de convertir des objets JavaScript en chaînes XML. Il est facile à utiliser, prend en charge n'importe quel attribut et hiérarchies imbriquées, et gère des problèmes tels que les caractères spéciaux lors de la sortie XML.

Installation :

Utiliser l'installation npm :

npm install js2xmlparser
Copier après la connexion

Utiliser l'installation de fil :

yarn add js2xmlparser
Copier après la connexion

Exemple d'utilisation : #🎜🎜 #

const parser = require('js2xmlparser');

const object = {
    name: 'John Smith',
    age: 30,
    email: 'john.smith@example.com'
};

const xml = parser.parse('person', object);
console.log(xml);
Copier après la connexion
Sortie :

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <name>John Smith</name>
  <age>30</age>
  <email>john.smith@example.com</email>
</person>
Copier après la connexion
Méthode 2 : Épisser manuellement les chaînes XML

Si vous ne souhaitez pas utiliser une bibliothèque tierce, vous pouvez également manuellement épisser des chaînes XML. Voici un exemple de code qui convertit les objets JavaScript en fichiers XML :

function objectToXml(obj, rootName) {
  let xml = '';

  // 添加 XML 声明
  xml += '<?xml version="1.0" encoding="UTF-8"?>';

  // 添加根元素标签
  xml += `<${rootName}>`;

  // 遍历对象属性,添加元素标签和属性
  for (const property in obj) {
    if (obj.hasOwnProperty(property)) {
      xml += '<' + property + '>';

      if (typeof obj[property] === 'object') {
        xml += objectToXml(new Object(obj[property]));
      } else {
        xml += obj[property];
      }

      xml += '</' + property + '>';
    }
  }

  // 添加根元素闭合标签
  xml += `</${rootName}>`;

  return xml;
}

const obj = {
  name: 'John',
  age: 30,
  dateOfBirth: {
    year: 1990,
    month: 3,
    day: 15
  }
};

const xml = objectToXml(obj, 'person');
console.log(xml);
Copier après la connexion
Sortie :

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <name>John</name>
  <age>30</age>
  <dateOfBirth>
    <year>1990</year>
    <month>3</month>
    <day>15</day>
  </dateOfBirth>
</person>
Copier après la connexion
Méthode 3 : Utiliser l'API XMLSerializer

XMLSerializer Oui Une API JavaScript intégrée pour sérialiser les arborescences DOM en chaînes XML. Par conséquent, nous pouvons atteindre l'objectif de convertir un objet JavaScript en un fichier XML en créant une arborescence DOM contenant notre objet JavaScript. Voici un exemple de code :

function objectToXml(obj, rootName) {
  const dom = document.createElement(rootName);

  for (const property in obj) {
    if (obj.hasOwnProperty(property)) {
      const element = document.createElement(property);

      if (typeof obj[property] === 'object') {
        element.appendChild(objectToXml(new Object(obj[property]), property));
      } else {
        const value = document.createTextNode(obj[property]);
        element.appendChild(value);
      }

      dom.appendChild(element);
    }
  }

  return dom;
}

const obj = {
  name: 'John',
  age: 30,
  dateOfBirth: {
    year: 1990,
    month: 3,
    day: 15
  }
};

const xmlSerializer = new XMLSerializer();
const xml = xmlSerializer.serializeToString(objectToXml(obj, 'person'));
console.log(xml);
Copier après la connexion
Sortie :

<person>
  <name>John</name>
  <age>30</age>
  <dateOfBirth>
    <year>1990</year>
    <month>3</month>
    <day>15</day>
  </dateOfBirth>
</person>
Copier après la connexion
Conclusion

Cet article présente trois méthodes pour convertir des objets JavaScript en fichiers XML. La première méthode utilise la bibliothèque js2xmlparser, simple à utiliser et puissante. La deuxième méthode consiste à fusionner manuellement les chaînes XML. Si vous ne souhaitez pas installer de bibliothèque tierce, vous pouvez choisir cette méthode. La troisième méthode consiste à utiliser l'API XMLSerializer, qui nécessite la création d'une arborescence DOM à implémenter, mais si vous utilisez souvent des opérations DOM dans votre travail, cette méthode peut vous convenir davantage. J'espère que cet article vous aidera à trouver la méthode de conversion qui vous convient.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Expliquez le concept de chargement paresseux. Expliquez le concept de chargement paresseux. Mar 13, 2025 pm 07:47 PM

Expliquez le concept de chargement paresseux.

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires? Mar 19, 2025 pm 03:58 PM

Qu'est-ce que l'utilisation Effecte? Comment l'utilisez-vous pour effectuer des effets secondaires?

Comment fonctionne l'algorithme de réconciliation React? Comment fonctionne l'algorithme de réconciliation React? Mar 18, 2025 pm 01:58 PM

Comment fonctionne l'algorithme de réconciliation React?

Expliquez le but de chaque méthode de cycle de vie et de son cas d'utilisation. Expliquez le but de chaque méthode de cycle de vie et de son cas d'utilisation. Mar 19, 2025 pm 01:46 PM

Expliquez le but de chaque méthode de cycle de vie et de son cas d'utilisation.

Comment fonctionne le currying en JavaScript et quels sont ses avantages? Comment fonctionne le currying en JavaScript et quels sont ses avantages? Mar 18, 2025 pm 01:45 PM

Comment fonctionne le currying en JavaScript et quels sont ses avantages?

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable? Mar 18, 2025 pm 01:44 PM

Quelles sont les fonctions d'ordre supérieur en JavaScript, et comment peuvent-ils être utilisés pour écrire du code plus concis et réutilisable?

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés? Mar 19, 2025 pm 04:16 PM

Quels sont les avantages et les inconvénients des composants contrôlés et incontrôlés?

Quelles sont les techniques d'optimisation des performances de React (mémoires, division du code, chargement paresseux)? Quelles sont les techniques d'optimisation des performances de React (mémoires, division du code, chargement paresseux)? Mar 18, 2025 pm 01:57 PM

Quelles sont les techniques d'optimisation des performances de React (mémoires, division du code, chargement paresseux)?

See all articles