Comment obtenir la valeur du noeud xml dans une chaîne
J'ai essayé le code ci-dessous pour obtenir la valeur d'un nœud particulier, mais lors du chargement du xml cette exception est levée:
Exception:
De données au niveau de la racine n'est pas valide. Ligne 1, position 1.
XML
<?xml version="1.0"?>
<Data xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Date>11-07-2013</Date>
<Start_Time>PM 01:37:11</Start_Time>
<End_Time>PM 01:37:14</End_Time>
<Total_Time>00:00:03</Total_Time>
<Interval_Time/>
<Worked_Time>00:00:03</Worked_Time>
<Short_Fall>08:29:57</Short_Fall>
<Gain_Time>00:00:00</Gain_Time>
</Data>
C#:
XmlDocument xml = new XmlDocument();
filePath = @"D:\Work_Time_Calculator-07-2013.xml";
xml.LoadXml(filePath); //Exception occurs here
XmlNode node = xml.SelectSingleNode("/Data[@*]/Short_Fall");
string id = node["Short_Fall"].InnerText;
Code Modifié
C#:
XmlDocument xml = new XmlDocument();
filePath = @"D:\Work_Time_Calculator-07-2013.xml";
xml.Load(filePath);
XmlNode node = xml.SelectSingleNode("/Data[@*]/Short_Fall");
string id = node["Short_Fall"].InnerText; //Exception occurs here ("Object reference not set to an instance of an object.")
source d'informationauteur Vignesh
Vous devez vous connecter pour publier un commentaire.
Le problème dans votre code est
xml.LoadXml(filePath);
Essayer ce code
Modifier
Voir la dernière édition de votre question, j'ai trouvé la solution,
Il suffit de remplacer le dessous de 2 lignes
avec
Il faut résoudre votre problème ou vous pouvez utiliser la solution que j'ai fourni plus haut.
Vous devez utiliser
.Load
et pas.LoadXML
MSDN Lien
"La méthode LoadXml est pour le chargement d'une chaîne de caractères XML directement. Vous souhaitez utiliser la méthode de Chargement, la place."
ref : Lien