การทํางานกับการประมวลผล XML
การทํางานกับการประมวลผล XML
Aspose.Cells FOSS for C++ uses a lightweight internal XML layer to read and write the Open XML parts that make up an XLSX file. The XmlDocument, XmlElement,และ XmlAttribute คลาสเป็นหัวใจของชั้นนี้.
การอัตราค่า XML Document
การใช้งาน XmlDocument::Load เพื่อพารัสรัง XML หรือไฟล์ในต้นเอกสารในความจํา:
#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>");การสร้างและการบันทึก XML
การใช้งาน XmlDocument::Build เพื่อสร้างเอกสาร XML ได้โดยการเขียนโปรแกรม และ XmlDocument::SaveToUtf8 เพื่อการเรียงมันกลับเป็นรุ่น UTF-8:
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();การ ผ่าน อุปกรณ์ต่างๆ
XmlElement ให้การเข้าถึงค่าขององค์ประกอบ, ลูก และคุณสมบัติโดยใช้มือเบา. องค์กรที่สร้างตามตั้งค่ากลับคืน IsNull() == true, ซึ่งสามารถใช้เป็นการตรวจสอบ null ที่ปลอดภัย:
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}การทํางานกับคุณสมบัติ
XmlAttribute ให้การเข้าถึงคู่ชื่อและค่าของคุณสมบัติในตัวอย่าง. ใช้ XmlAttribute::MakeAttribute(name, value) เพื่อสร้างคุณสมบัติใหม่:
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();แมปเปอร์ XML ภายใน
ห้องสมุดใช้ Mapper Class เพื่อแปลงตัวอย่างในเมมอรี่ของตารางกระดาษ เป็นการแสดง XML ของมัน และจากนั้นเอง. เหล่านี้เป็นส่วนภายในชั้นเรียงลําดับ:
| Mapper Class คลาสการทําแผนที่ | Responsibility |
|---|---|
WorkbookXmlMapper | อ่านและเขียนส่วนความสัมพันธ์ของสมุดงาน |
WorksheetXmlMapper | อ่านและเขียนส่วนของ XML ของตารางงานแต่ละชิ้น |
StylesheetXmlMapper | อ่านและเขียนส่วนของสไตล์ |
SharedStringTableXmlMapper | อ่านและเขียนตารางสเตรนที่แบ่งปัน |
การแสดงแผนที่แต่ละตัว Read และ Write วิธีการเหล่านี้ถูกเรียกในภายในโดย XlsxWorkbookSerializer และไม่ได้ตั้งไว้เพื่อใช้โดยตรงในรหัสการใช้งาน.
การจัดการข้อผิดพลาด
ความผิดพลาดในการพาราซิ่ง XML โยง XmlParsingException. ติดความผิดพลาดนี้เมื่อโหลด XML ที่ไม่น่าเชื่อถือหรือมีรูปแบบที่ผิดปกติ:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}เคล็ดลับและปฏิบัติที่ดีที่สุด
- Check
XmlElement::IsNull()ก่อนการเข้าถึงข้อมูลขององค์ประกอบ อิเล็กเมนต์ที่เส้นทางขาดกลับตัวจับ null. - การใช้งาน
XmlDocument::SaveToUtf8()เพื่อการรับรุ่นเรียงเพื่อ debugging หรือ logging ระยะกลาง XML state. - ไม่ให้ตัวอย่างของ mapper class (
WorkbookXmlMapper,WorksheetXmlMapper,ฯลฯ) โดยตรงในโครงการใช้รหัสWorkbook::SaveและWorkbook(filePath)แทนนั้น. XmlParsingExceptionจะถูกโยนลงใน XML ที่มีรูปแบบผิดปกติ; เสมอจะพับการโหลด XML ด้านนอกไว้ในบล็อก try/catch.
ปัญหาทั่วไป
| Issue | Cause | แก้ไข |
|---|---|---|
IsNull() กลับ true | องค์ประกอบไม่ได้พบในเส้นทางที่คาดหวัง | ยืนยันโครงสร้าง XML ก่อนการสืบค้น |
XmlParsingException ในภาระ | XML ที่มีรูปแบบผิดปกติหรือไม่เป็น UTF-8 | ยืนยัน XML การเข้า ก่อนการส่งไปยัง Load |
| การออกของ Mapper ต่างจากการเข้า | การเปลี่ยนแปลงแบบจําลองก่อนการเก็บ | การันตีการเปลี่ยนแปลงแบบทั้งหมด ก่อนเรียก Save |
คําอธิบายการพบบ่อย API
| ประเภท/วิธีการ | Description |
|---|---|
XmlDocument::Load(content) | การวิเคราะห์รหัส XML |
XmlDocument::Build() | สร้างเอกสารโดยการเขียนโปรแกรม |
XmlDocument::SaveToUtf8() | การเรียงเอกสารเป็นรหัส UTF-8 |
XmlElement::IsNull() | ตรวจสอบว่าตัวจับขององค์ประกอบเป็นจริงหรือไม่ |
XmlElement::GetValue() | รับเนื้อหาข้อความของตัวประกอบ |
XmlElement::GetAttributes() | รับการรวบรวมคุณสมบัติ |
XmlAttribute::IsNull() | ตรวจสอบว่าการจัดการคุณสมบัติเป็นจริงหรือไม่ |
XmlAttribute::MakeAttribute(name, value) | สร้างแฮนด์เล็ตคุณสมบัติใหม่ |
XmlParsingException | โยงลงกับการเข้า XML ที่ผิดรูปแบบ |
WorksheetXmlMapper | แผ่นงานภายใน XML อ่าน/เขียน |
WorkbookXmlMapper | การอ่าน/เขียน XML ของหนังสือทํางานภายใน |