“Le caractère':', valeur hexadécimale 0x3A, ne peut pas être inclus dans un nom”
J'ai un code qui permettra de lire des fichiers xml(s). J'ai essayé différentes façons de résoudre ce problème, mais ne le pouvait pas. Aussi, j'ai essayé de code comme ceci:
Namespace my = "http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30";
XElement myEgitimBilgileri = XDocument.Load(@"C:036077.xml").Element("my:"+ "Egitim_Bilgileri");
Mais tout le temps la même erreur. Voici l'original:
private void button2_Click(object sender, EventArgs e)
{
XElement myEgitimBilgileri =
XDocument.Load(@"C:036077.xml").Element("my:Egitim_Bilgileri");
if (myEgitimBilgileri != null)
{
foreach (XElement element in myEgitimBilgileri.Elements())
{
Console.WriteLine("Name: {0}\tValue: {1}", element.Name, element.Value.Trim());
}
}
Console.Read();
}
Ici est un chemin de mon fichier xml:
<my:Egitim_Bilgileri>
<my:egitimler_sap>
<my:sap_eduname></my:sap_eduname>
<my:sap_edufaculty></my:sap_edufaculty>
<my:sap_eduprofession></my:sap_eduprofession>
<my:sap_diplomno></my:sap_diplomno>
<my:sap_edulevel></my:sap_edulevel>
<my:sap_edustartdate xsi:nil="true"></my:sap_edustartdate>
<my:sap_eduenddate xsi:nil="true"></my:sap_eduenddate>
</my:egitimler_sap>
</my:Egitim_Bilgileri>
et c'est le chemin de mon espace de noms XML
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2011-01-11T08:31:30"
xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2008-01-23T00:43:17"
- Cette question semble comme il a été répondu. Pouvez-vous accepter la réponse ou de préciser s'il y a des problèmes récurrents?
- Voir aussi Le caractère':', valeur hexadécimale 0x3A, ne peut pas être inclus dans un nom.
Vous devez vous connecter pour publier un commentaire.
Le code
Element("my:" + "Egitim_Bilgileri")
est le même queElement("my:Egitim_Bilgileri")
c'est-à-dire l'élément nommé "mon:Egitim_Bilgileri" dans l'espace de noms par défaut (il y a un la conversion implicite de la chaîne de XName).Cependant,
:
est pas valide dans un nom d'élément (à l'extérieur de l'espace de noms de séparation) et donc le résultat sera une exception d'exécution.Au lieu de cela, le code doit être
Element(my + "Egitim_Bilgileri")
oùmy
est un XNamespace objet. Le XNamespace de l'objet+
de l'opérateur, lors d'une chaîne de caractères comme le deuxième opérande, les résultats dans un XName de l'objet qui peut ensuite être utilisé avec la Élément(XName)
méthode.Par exemple:
Codage heureux... et condoléances pour avoir à traiter avec InfoPath 🙂
Je préfère utiliser XPath dans la plupart des cas. Entre autres choses, il permet facilement la sélection de nœuds imbriqués et évite d'avoir à vérifier pour les nuls" chaque niveau peut être nécessaire avec
node.Element(x).Element(y)
constructions.Element/Elements
ne regarde que les enfants directs. EnvisagerXPathSelectElements
pour des requêtes plus complexes.)xmlns:my=....
manquant sur elle.