Tôi đã gặp vấn đề tương tự với việc muốn truyền thông điệp xml giữa các thiết bị được nhúng.
Tôi đã viết đoạn mã sau (tất cả trong một tệp tiêu đề) là một api nhanh để phân tích cú pháp và tạo xml. Nó không hỗ trợ tất cả các tính năng xml, nhưng thông điệp xml đơn giản nhất không cần chúng anyway:
http://www.scottlangham.co.uk/2009/01/rapidxml-a-quick-xml-parsergenerator-for-c/
Có ví dụ sử dụng thể hiện trong các ý kiến.
Để viết xml bạn có thể làm một cái gì đó như sau:
int isbn = 2938237;
wstring authorName = "Isaac Asimov";
wstring borrower = "Mr. Blobby";
CWTag bookTag = libraryTag(L"Book")
(L"author",authorName) (L"isbn",isbn) (L"borrower",borrower);
bookTag(L"Review") (L"comments", L"very good");
và kết quả này trong xml mới được thêm vào dưới thẻ:
<Book author="Isaac Asimov" isbn="2938237" borrower="Mr. Blobby">
<Review comments="very good"/>
</Book>
Chúng tôi đã cố gắng thư viện khác, tôi có thể Không nhớ cái nào, và thấy nó không đủ nhanh. Chúng tôi không muốn gắn bó với các chuỗi định dạng theo cách thủ công vì chúng tôi đã xử lý khá nhiều thư.
Nguồn
2009-01-29 21:50:41
tôi phản đối kịch liệt. Việc tạo XML bằng tay khá dễ xảy ra lỗi (các vấn đề mã hóa, thoát khỏi các ký tự) vì vậy tôi khuyên bạn nên tạo một cây (DOM hoặc cái gì đó khác) và sau đó để tuần tự hóa nó. – bortzmeyer
Này, tôi chỉ nói "Xerces là một quá mức cần thiết". Thoát có thể (và nên) được xử lý bởi một hàm duy nhất hoặc một thư viện nhẹ như Genx: http://www.tbray.org/ongoing/genx/docs/Guide.html - Nemanja Trifunovic –