การทํางานกับการประมวลผล XML

การทํางานกับการประมวลผล 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.

ปัญหาทั่วไป

IssueCauseแก้ไข
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 ของหนังสือทํางานภายใน

See Also

 ภาษาไทย