Je lis xml de xxx URl mais j'obtiens une erreur car un élément racine est manquant.
Mon code pour lire la réponse XML est le suivant:
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)
{
}
et la réponse XML est la suivante:
<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>
Pouvez-vous s'il vous plaît dire où je vais mal.
Bonjour c'est curieux mais essayez une fois
XMLDocument.LoadXML(xmlstring)
J'essaie avec votre code et le même XML sans ajouter de déclaration XML, cela fonctionne pour moi
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");
}
Juste au cas où quelqu'un d'autre arriverait ici de Google, j'ai été piqué par ce message d'erreur lors de l'utilisation de la méthode XDocument.Load (Stream).
XDocument xDoc = XDocument.Load(xmlStream);
Assurez-vous que la position du flux est définie sur 0 (zéro) avant d'essayer de charger le flux. C'est une erreur facile que je néglige toujours!
if (xmlStream.Position > 0)
{
xmlStream.Position = 0;
}
XDocument xDoc = XDocument.Load(xmlStream);
Assurez-vous que XML ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?>
<rootElement>
...
</rootElement>
En outre, un fichier XML vierge renverra les mêmes exceptions racine pour les éléments racine. Chaque fichier XML doit avoir un élément racine/noeud qui englobe tous les autres éléments.
Si vous chargez le fichier XML depuis un emplacement distant, je vérifierai si le fichier est effectivement téléchargé correctement à l'aide d'un renifleur tel que Fiddler .
J'ai écrit une application de console rapide pour exécuter votre code et analyser le fichier et cela fonctionne très bien pour moi.
Vérifiez le fichier trees.config qui se trouve dans le dossier de configuration ... Parfois (je ne sais pas pourquoi), ce fichier est devenu vide, comme si quelqu'un supprimait le contenu de ... Conserve une sauvegarde de ce fichier puis, lorsque cette erreur apparaît, dans votre ordinateur local, remplacez le fichier du serveur par votre fichier local. C'est ce que je fais quand cette erreur s'est produite.
vérifiez l'espace disponible sur le serveur. parfois c'est le problème.
Bonne chance.