Tôi đang cố đọc một tệp XML trong chương trình C++ của mình. Các tập tin XML trông giống như sau:đọc một tệp XML trong chương trình C++
<?xml version="1.0" encoding="utf-8"?>
<myprogram>
<configuration>
<window>
<height> 300 </height>
<width> 500 </width>
</window>
</configuration>
</myprogram>
Ngay bây giờ tôi có thể nhìn vào các tập tin XML và cố gắng đọc nó như thế này:
ifstream in("mydata.xml");
//ignore the <?xml line
in.ignore(200, '\n');
//i know that the first value i want is the window height so i can ignore <myprogram> <configuration> and <window>
//ignore <myprogram>
in.ignore(200, '\n');
//ignore <configuration>
in.ignore(200, '\n');
//ignore <window>
in.ignore(200, '\n');
string s; int height;
//okay, now i have my height
in >> s >> height;
Nói chung này có vẻ như một ý tưởng tồi và nó thực sự giới hạn cách tệp XML có thể được sửa đổi. Các giải pháp trên là rất thủ công và nếu bất cứ điều gì trong XML thay đổi có vẻ như là toàn bộ phương pháp đọc nó sẽ phải được thay đổi.
Có cách nào tốt hơn để thực hiện việc này không?
Tôi không sử dụng C++ trong nhiều năm vì vậy tôi không thể đặt tên một nhưng google một trình phân tích cú pháp xml cho C++ và tôi chắc chắn bạn sẽ tìm thấy một cái gì đó. – Dan675