Saya membaca xml dari xxx URl tetapi saya mendapatkan kesalahan karena elemen Root tidak ada.
Kode saya untuk membaca respon xml adalah sebagai berikut:
XmlDocument doc = new XmlDocument();
doc.Load("URL from which i am reading xml");
XmlNodeList nodes = doc.GetElementsByTagName("Product");
XmlNode node = null;
foreach (XmlNode n in nodes)
{
}
dan respon xml adalah sebagai berikut:
<All_Products>
<Product>
<ProductCode>GFT</ProductCode>
<ProductName>Gift Certificate</ProductName>
<ProductDescriptionShort>Give the perfect gift. </ProductDescriptionShort>
<ProductDescription>Give the perfect gift.</ProductDescription>
<ProductNameShort>Gift Certificate</ProductNameShort>
<FreeShippingItem>Y</FreeShippingItem>
<ProductPrice>55.0000</ProductPrice>
<TaxableProduct>Y</TaxableProduct>
</Product>
</All_Products>
Bisakah Anda memberi tahu di mana saya salah.
Pastikan XML Anda terlihat seperti ini:
<?xml version="1.0" encoding="utf-8"?>
<rootElement>
...
</rootElement>
Juga, file XML kosong akan mengembalikan elemen Root yang sama tidak ada pengecualian. Setiap file XML harus memiliki elemen / node root yang melingkupi semua elemen lainnya.
Jika Anda memuat berkas XML dari lokasi yang jauh, saya akan memeriksa untuk melihat apakah berkas tersebut benar-benar diunduh dengan benar menggunakan sniffer seperti Fiddler.
Saya menulis aplikasi konsol cepat untuk menjalankan kode Anda dan mem-parsing berkas dan berfungsi dengan baik untuk saya.
Hai, ini cara yang aneh tapi cobalah sekali saja
XMLDocument.LoadXML(xmlstring)
Saya mencoba dengan kode Anda dan XML yang sama tanpa menambahkan deklarasi XML apa pun, ini berfungsi untuk saya
XmlDocument doc = new XmlDocument();
doc.Load(@"H:\WorkSpace\C#\TestDemos\TestDemos\XMLFile1.xml");
XmlNodeList nodes = doc.GetElementsByTagName("Product");
XmlNode node = null;
foreach (XmlNode n in nodes)
{
Console.WriteLine("HI");
}