Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Membaca dan Memproses Data XML dengan Cekap Menggunakan XmlReader dalam C#?
Mengoptimumkan Penghuraian XML dalam C# dengan XmlReader
Untuk pemprosesan dokumen XML yang cekap dalam C#, pendekatan berstruktur menggunakan kelas berasingan untuk nod berbeza disyorkan. Contoh ini memfokuskan pada membaca Account
data, dengan kelas AccountBase
khusus untuk mengendalikan sifat seperti NameOfKin
. Cabaran untuk menavigasi ke elemen StatementsAvailable
diselesaikan dengan elegan menggunakan XmlReader.Skip()
.
Kelas AccountBase
menggabungkan coretan kod berikut:
<code class="language-csharp">while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element) { if (reader.Name == "StatementsAvailable") { reader.Skip(); // Efficiently skips the StatementsAvailable element and its children ProcessStatements(reader); break; // Moves to the next Account element } } }</code>
Kaedah ProcessStatements()
pula, menggunakan kelas Statement
untuk menghuraikan sifat pernyataan individu. Reka bentuk modular ini meluas dengan lancar ke sub-elemen XML yang lain.
Walaupun XmlReader
cemerlang dalam penstriman yang cekap, LINQ ke XML menawarkan sintaks yang lebih mesra pengguna untuk manipulasi XML. Untuk fail XML yang besar, pertimbangkan pendekatan hibrid: strim data dalam ketulan yang boleh diurus menggunakan XmlReader
dan kemudian proseskan ketulan tersebut menggunakan LINQ yang lebih mudah kepada XML.
Struktur Kod yang Diperbaiki dengan Pengendalian Gelung Bersarang:
Contoh kod yang diperhalusi ini memudahkan gelung bacaan bersarang dan mengelakkan kemungkinan ralat "baca di luar jangkaan":
<code class="language-csharp">using (XmlReader reader = XmlReader.Create(inputUrl)) { reader.ReadToDescendant("ApplicationPool"); // Directly navigate to the root element while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Name == "Account") { AccountBase account = new AccountBase(reader); reader.ReadToFollowing("StatementsAvailable"); // Efficiently finds StatementsAvailable reader.Skip(); account.ProcessStatements(reader); } } }</code>
Peningkatan ini menyelaraskan proses, menjadikan kod lebih bersih dan lebih mantap. Navigasi terus ke elemen akar dan penggunaan ReadToFollowing
meningkatkan kecekapan dan kebolehbacaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca dan Memproses Data XML dengan Cekap Menggunakan XmlReader dalam C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!