Bekerja dengan XML Processing

Bekerja dengan XML Processing

Bekerja dengan Pemrosesan XML

Aspose.Cells FOSS untuk C++ menggunakan lapisan internal XML yang ringan untuk membaca dan menulis bagian Open XML yang membentuk file XLSX. Kelas XmlDocument, XmlElement, dan XmlAttribute membentuk inti lapisan ini.


Memuat Dokumen XML

Gunakan XmlDocument::Load untuk mengurai string atau file XML menjadi pohon dokumen di memori:

#include "aspose/cells_foss/XmlDocument.h"

using namespace Aspose::Cells_FOSS;

// Load from string content
XmlDocument doc;
doc.Load("<root><item key=\"a\">value</item></root>");

Membangun dan Menyimpan XML

Gunakan XmlDocument::Build untuk membangun dokumen XML secara programatik, dan XmlDocument::SaveToUtf8 untuk menyerialkannya kembali menjadi string UTF-8:

XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();

Menelusuri Elemen

XmlElement menyediakan akses berbasis handle ringan ke nilai elemen, anak, dan atribut. Elemen yang dibangun dengan default mengembalikan IsNull() == true, yang dapat digunakan sebagai pemeriksaan null yang aman:

XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
    // Traverse children via GetAttributes
    auto attrs = root.GetAttributes();
}

Bekerja dengan Atribut

XmlAttribute menyediakan akses ke pasangan nama dan nilai atribut pada sebuah elemen. Gunakan XmlAttribute::MakeAttribute(name, value) untuk membuat atribut baru:

XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();

Mapper Internal XML

Perpustakaan ini menggunakan kelas mapper khusus untuk mengonversi objek model spreadsheet yang berada di memori ke dan dari representasi XML mereka. Ini bersifat internal lapisan serialisasi:

Kelas MapperResponsibility
WorkbookXmlMapperMembaca serta menulis bagian hubungan workbook
WorksheetXmlMapperMembaca serta menulis bagian XML lembar kerja individu
StylesheetXmlMapperMembaca serta menulis bagian gaya
SharedStringTableXmlMapperMembaca dan menulis tabel string bersama

Setiap mapper mengekspos metode Read dan Write. Metode-metode ini dipanggil secara internal oleh XlsxWorkbookSerializer dan tidak dimaksudkan untuk digunakan langsung dalam kode aplikasi.


Penanganan Kesalahan

Kesalahan parsing XML melempar XmlParsingException. Tangkap pengecualian ini saat memuat XML yang tidak terpercaya atau rusak:

try {
    doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
    // Handle parse error
}

Tips dan Praktik Terbaik

  • Periksa XmlElement::IsNull() sebelum mengakses data elemen — elemen pada jalur yang hilang mengembalikan handle null.
  • Gunakan XmlDocument::SaveToUtf8() untuk memperoleh string ter-serialisasi untuk debugging atau pencatatan status XML menengah.
  • Jangan menginstansiasi kelas mapper (WorkbookXmlMapper, WorksheetXmlMapper, dll.) secara langsung dalam kode aplikasi — gunakan Workbook::Save dan Workbook(filePath) sebagai gantinya.
  • XmlParsingException dilemparkan pada XML yang tidak terbentuk dengan benar; selalu bungkus pemuatan XML eksternal dalam blok try/catch.

Masalah Umum

MasalahPenyebabPerbaikan
IsNull() mengembalikan trueElemen tidak ditemukan pada jalur yang diharapkanVerifikasi struktur XML sebelum penelusuran
XmlParsingException saat memuatTidak terbentuk dengan baik atau bukan UTF-8 XMLValidasi XML input sebelum diteruskan ke Load
Output Mapper berbeda dari inputMutasi model sebelum disimpanPastikan semua perubahan model di-commit sebelum memanggil Save

Ringkasan API Reference

Kelas/MetodeDeskripsi
XmlDocument::Load(content)Uraikan string XML
XmlDocument::Build()Membuat dokumen secara programatik
XmlDocument::SaveToUtf8()Serialisasikan dokumen ke string UTF-8
XmlElement::IsNull()Periksa apakah handle elemen valid
XmlElement::GetValue()Dapatkan konten teks dari elemen
XmlElement::GetAttributes()Dapatkan koleksi atribut
XmlAttribute::IsNull()Periksa apakah handle atribut valid
XmlAttribute::MakeAttribute(name, value)Buat handle atribut baru
XmlParsingExceptionDilempar pada input XML yang tidak valid
WorksheetXmlMapperWorksheet internal XML baca/tulis
WorkbookXmlMapperBuku kerja internal XML baca/tulis

Lihat Juga

 Bahasa Indonesia