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

Apr 25, 2023 pm 06:19 PM

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
Salin selepas log masuk

Gunakan benang untuk memasang:

yarn add js2xmlparser
Salin selepas log masuk

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);
Salin selepas log masuk

Output:

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

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 += '<' + 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);
Salin selepas log masuk

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>
Salin selepas log masuk

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);
Salin selepas log masuk

Output:

<person>
  <name>John</name>
  <age>30</age>
  <dateOfBirth>
    <year>1990</year>
    <month>3</month>
    <day>15</day>
  </dateOfBirth>
</person>
Salin selepas log masuk

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 Laman Web ini
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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Terangkan konsep pemuatan malas. Terangkan konsep pemuatan malas. Mar 13, 2025 pm 07:47 PM

Terangkan konsep pemuatan malas.

Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan? Mar 19, 2025 pm 03:58 PM

Apa itu useeffect? Bagaimana anda menggunakannya untuk melakukan kesan sampingan?

Bagaimanakah algoritma Rekonsiliasi React berfungsi? Bagaimanakah algoritma Rekonsiliasi React berfungsi? Mar 18, 2025 pm 01:58 PM

Bagaimanakah algoritma Rekonsiliasi React berfungsi?

Terangkan tujuan setiap kaedah kitaran hayat dan kes penggunaannya. Terangkan tujuan setiap kaedah kitaran hayat dan kes penggunaannya. Mar 19, 2025 pm 01:46 PM

Terangkan tujuan setiap kaedah kitaran hayat dan kes penggunaannya.

Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya? Mar 18, 2025 pm 01:45 PM

Bagaimanakah kari bekerja di JavaScript, dan apakah faedahnya?

Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula? Mar 18, 2025 pm 01:44 PM

Apakah fungsi pesanan yang lebih tinggi dalam JavaScript, dan bagaimana mereka boleh digunakan untuk menulis lebih banyak kod ringkas dan boleh diguna semula?

Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal? Mar 19, 2025 pm 04:16 PM

Apakah kelebihan dan kekurangan komponen terkawal dan tidak terkawal?

Apakah teknik pengoptimuman prestasi React (memoisasi, pemisahan kod, pemuatan malas)? Apakah teknik pengoptimuman prestasi React (memoisasi, pemisahan kod, pemuatan malas)? Mar 18, 2025 pm 01:57 PM

Apakah teknik pengoptimuman prestasi React (memoisasi, pemisahan kod, pemuatan malas)?

See all articles