Bagaimana untuk menukar objek kepada fail xml dalam javascript

PHPz
Lepaskan: 2023-04-25 18:52:39
asal
1851 orang telah melayarinya

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 += '<&#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);
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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!