Làm việc với XML Processing
Làm việc với XML Processing
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, và XmlAttribute Các lớp học hình thành cốt lõi của lớp này.
Tải tài liệu XML
Sử dụng XmlDocument::Load để phân đoạn một string XML hoặc tệp vào cây tài liệu trong bộ nhớ:
#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>");Xây dựng và tiết kiệm XML
Sử dụng XmlDocument::Build để xây dựng một tài liệu XML theo lập trình, và XmlDocument::SaveToUtf8 để phân loại nó trở lại một dòng UTF-8:
XmlDocument doc;
// Build the document structure
auto xml = doc.SaveToUtf8();Chuyến đi Elements
XmlElement cung cấp truy cập dựa trên bàn tay nhẹ đến các giá trị yếu tố, trẻ em và thuộc tính. IsNull() == true, có thể được sử dụng như một kiểm tra null an toàn:
XmlElement root = doc.GetRootElement();
if (!root.IsNull()) {
// Traverse children via GetAttributes
auto attrs = root.GetAttributes();
}Làm việc với Attributes
XmlAttribute cung cấp quyền truy cập để phân bổ tên và giá trị cặp trên một yếu tố. XmlAttribute::MakeAttribute(name, value) Để tạo ra các thuộc tính mới:
XmlAttribute attr = XmlAttribute::MakeAttribute("key", "value");
bool isNull = attr.IsNull();Mã XML Internal
Thư viện sử dụng các lớp bản đồ dành riêng để chuyển đổi trong bộ nhớ biểu mẫu đối tượng sang và từ đại diện XML của họ.:
| Mapper lớp học | Responsibility |
|---|---|
WorkbookXmlMapper | Đọc và viết phần mối quan hệ sổ làm việc |
WorksheetXmlMapper | Đọc và viết các phần XML của sổ làm việc cá nhân |
StylesheetXmlMapper | Đọc và viết các phong cách phần |
SharedStringTableXmlMapper | Đọc và viết bảng chia sẻ dây |
Mỗi bản đồ được trình bày Read và Write Các phương pháp này được gọi là nội bộ bởi XlsxWorkbookSerializer và không được thiết kế để sử dụng trực tiếp trong mã ứng dụng.
Xử lý lỗi
XML Parsing Errors Throw Lỗi Xử lý XmlParsingException.Chụp ngoại lệ này khi tải XML không tin cậy hoặc sai định dạng:
try {
doc.Load(xmlContent);
} catch (const XmlParsingException& ex) {
// Handle parse error
}Mẹo và Thực hành Tốt nhất
- Check
XmlElement::IsNull()trước khi truy cập dữ liệu yếu tố - các yếu phẩm trên đường lối thiếu trở lại một bàn tay không. - Sử dụng
XmlDocument::SaveToUtf8()để có được một dòng hàng loạt cho việc debugging hoặc logging trạng thái XML trung gian. - Không nên dùng các loại đồ họa (
WorkbookXmlMapper,WorksheetXmlMapper, vv) trực tiếp trong mã ứng dụng - sử dụngWorkbook::SavevàWorkbook(filePath)Thay vào đó. XmlParsingExceptionđược ném vào XML bị biến dạng; luôn bao gồm các tải XML bên ngoài trong một khối thử / chặn.
Các vấn đề thường gặp
| Issue | Cause | Fix Đặt |
|---|---|---|
IsNull() Trở lại thật | Các yếu tố không được tìm thấy trên con đường dự kiến | Kiểm tra cấu trúc XML trước khi đi qua |
XmlParsingException trên tải | Xác định hoặc không có UTF-8 XML | Xác định nhập XML trước khi chuyển sang Load |
| Mã sản phẩm khác với input | Mô hình biến đổi trước khi tiết kiệm | Hãy chắc chắn rằng tất cả các thay đổi mô hình được thực hiện trước khi gọi điện thoại. Save |
Tóm tắt Tham chiếu API
| lớp học / phương pháp | Description |
|---|---|
XmlDocument::Load(content) | Chia sẻ một string XML |
XmlDocument::Build() | Xây dựng tài liệu theo chương trình |
XmlDocument::SaveToUtf8() | Xét bản tài liệu đến một dòng UTF-8 |
XmlElement::IsNull() | Kiểm tra xem mục xử lý có hiệu lực không |
XmlElement::GetValue() | Nhận nội dung văn bản của mục |
XmlElement::GetAttributes() | Nhận bộ sưu tập attribute |
XmlAttribute::IsNull() | Kiểm tra xem tài liệu có hợp lệ hay không |
XmlAttribute::MakeAttribute(name, value) | Tạo một tài nguyên mới |
XmlParsingException | Thrown trên malformed XML input |
WorksheetXmlMapper | Tính năng: XML read/write |
WorkbookXmlMapper | Sách làm việc nội bộ XML read/write |