Cara Menghuraikan XML dengan Ruang Nama dalam XDocument
Apabila bekerja dengan XML yang mengandungi ruang nama, adalah penting untuk mengendalikannya dengan betul dalam kod anda . Tanpa menyatakan ruang nama yang betul, XDocument mungkin tidak dapat menghuraikan XML dengan berkesan.
Pertimbangkan contoh XML berikut:
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"> <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"> <EventID>589828</EventID> <Correlation ActivityID="{00000000-0000-0000-0000-000000000000}"> </Correlation> </System> </E2ETraceEvent>
Jika anda cuba menghuraikan XML ini menggunakan XDocument tanpa menyatakan ruang nama, anda mungkin menemui nilai nol untuk elemen tertentu. Berikut ialah coretan kod yang menggambarkan isu ini:
XDocument xDoc = XDocument.Parse(XMLString); XElement xEl1 = xDoc.Element("E2ETraceEvent"); XElement xEl2 = xEl1.Element("System"); XElement xEl3 = xEl2.Element("Correlation"); XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value; // Returns null
Penyelesaian: Menggunakan Ruang Nama
Untuk menghuraikan XML dengan ruang nama dengan betul, anda perlu menggunakan strategi berikut:
Berikut ialah coretan kod dikemas kini yang menunjukkan penyelesaian ini:
XNamespace nsSys = "http://schemas.microsoft.com/2004/06/windows/eventlog/system"; XElement xEl2 = xDoc.Element(nsSys + "System"); XElement xEl3 = xEl2.Element(nsSys + "Correlation"); XAttribute xAtt1 = xEl3.Attribute("ActivityID"); String sValue = xAtt1.Value; // Returns the ActivityID
Dengan menggunakan ruang nama dengan betul, anda boleh memastikan bahawa kod anda boleh mengekstrak dan memanipulasi data dengan tepat daripada dokumen XML yang mengandungi ruang nama.
Atas ialah kandungan terperinci Bagaimana Menghuraikan Dokumen XML dengan Ruang Nama dengan betul menggunakan XDocument?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!