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 Mapper | Responsibility |
|---|---|
WorkbookXmlMapper | Membaca serta menulis bagian hubungan workbook |
WorksheetXmlMapper | Membaca serta menulis bagian XML lembar kerja individu |
StylesheetXmlMapper | Membaca serta menulis bagian gaya |
SharedStringTableXmlMapper | Membaca 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 — gunakanWorkbook::SavedanWorkbook(filePath)sebagai gantinya. XmlParsingExceptiondilemparkan pada XML yang tidak terbentuk dengan benar; selalu bungkus pemuatan XML eksternal dalam blok try/catch.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
IsNull() mengembalikan true | Elemen tidak ditemukan pada jalur yang diharapkan | Verifikasi struktur XML sebelum penelusuran |
XmlParsingException saat memuat | Tidak terbentuk dengan baik atau bukan UTF-8 XML | Validasi XML input sebelum diteruskan ke Load |
| Output Mapper berbeda dari input | Mutasi model sebelum disimpan | Pastikan semua perubahan model di-commit sebelum memanggil Save |
Ringkasan API Reference
| Kelas/Metode | Deskripsi |
|---|---|
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 |
XmlParsingException | Dilempar pada input XML yang tidak valid |
WorksheetXmlMapper | Worksheet internal XML baca/tulis |
WorkbookXmlMapper | Buku kerja internal XML baca/tulis |