Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menukar objek kepada fail xml dalam javascript

Bagaimana untuk menukar objek kepada fail xml dalam javascript

PHPz
PHPzasal
2023-04-25 18:19:521896semak imbas

Dalam pembangunan bahagian hadapan, kami selalunya perlu menukar objek JavaScript kepada fail XML untuk berkongsi data antara aplikasi yang berbeza. Walaupun adalah mungkin untuk menulis kod secara manual untuk menjana XML, kaedah ini memakan masa dan terdedah kepada ralat. Oleh itu, artikel ini akan memperkenalkan beberapa kaedah untuk menukar objek JavaScript kepada fail XML. Saya harap ia akan membantu anda.

Kaedah 1: Gunakan perpustakaan js2xmlparser

js2xmlparser ialah perpustakaan untuk menukar objek JavaScript kepada rentetan XML. Ia mudah digunakan, menyokong sebarang atribut dan hierarki bersarang, dan mengendalikan isu seperti aksara khas apabila mengeluarkan XML.

Pemasangan:

Gunakan npm untuk memasang:

npm install js2xmlparser

Gunakan benang untuk memasang:

yarn add js2xmlparser

Contoh penggunaan:

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

Output:

<?xml version="1.0" encoding="UTF-8"?>
<person>
  <name>John Smith</name>
  <age>30</age>
  <email>john.smith@example.com</email>
</person>

Kaedah 2: Sambung rentetan XML secara manual

Jika anda tidak mahu menggunakan pustaka pihak ketiga, anda juga boleh menyambung rentetan XML secara manual. Berikut ialah contoh kod yang menukar objek JavaScript kepada fail 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);

Output:

<?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>

Kaedah 3: Gunakan XMLSerializer API

XMLSerializer dibina -dalam JavaScript API untuk mensiri pepohon DOM ke dalam rentetan XML. Oleh itu, kami boleh mencapai tujuan menukar objek JavaScript kepada fail XML dengan mencipta pepohon DOM yang mengandungi objek JavaScript kami. Berikut ialah contoh kod:

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

Output:

<person>
  <name>John</name>
  <age>30</age>
  <dateOfBirth>
    <year>1990</year>
    <month>3</month>
    <day>15</day>
  </dateOfBirth>
</person>

Kesimpulan

Artikel ini memperkenalkan tiga cara untuk menukar objek JavaScript kepada fail XML. Kaedah pertama menggunakan perpustakaan js2xmlparser, yang mudah digunakan dan berkuasa. Kaedah kedua ialah menyambung rentetan XML secara manual Jika anda tidak mahu memasang pustaka pihak ketiga, anda boleh memilih kaedah ini. Kaedah ketiga ialah menggunakan API XMLSerializer, yang memerlukan penciptaan pepohon DOM untuk dilaksanakan, tetapi jika anda sering menggunakan operasi DOM dalam kerja anda, kaedah ini mungkin lebih sesuai untuk anda. Saya harap artikel ini membantu anda mencari kaedah penukaran yang sesuai untuk anda.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada fail xml dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn