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

PHPz
PHPzoriginal
2023-04-25 18:19:521894parcourir

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

Utiliser l'installation de fil :

yarn add js2xmlparser

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);
Sortie :

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <name>John Smith</name>
  <age>30</age>
  <email>john.smith@example.com</email>
</person>
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 += '<&#39; + property + &#39;>';

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

      xml += '</&#39; + property + &#39;>';
    }
  }

  // 添加根元素闭合标签
  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);
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>
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);
Sortie :

<person>
  <name>John</name>
  <age>30</age>
  <dateOfBirth>
    <year>1990</year>
    <month>3</month>
    <day>15</day>
  </dateOfBirth>
</person>
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:
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