J'ai cette LINQ à l'enquête XML ...LINQ au contenu XML des enregistrements enfants
var Records = from Item in XDoc.Root.Elements("Item")
where (string)Item.Element("ItemNumber") == item.ID.ToString
select Item;
... où ItemNumber est un numéro de référence utilisé dans le fichier XML, (à l'origine écrit par ce programme, mais manuellement modifié par "autres"), et item.ID est la version de la base de données de la même chose. La requête exécute, et je peux tester le nombre d'entrées dans le beau résultat ...
if (Records.Count() < 1)
... vous voyez l'idée. J'ai établi qu'il n'y a qu'un seul enregistrement, (l'éditeur n'a pas supprimé ou dupliqué/multiplié l'article).
Chaque élément a plusieurs champs enfants. Je veux tester les valeurs des champs enfants sont raisonnables avant de les transmettre au sous-système de mise à jour de base de données. Le XML est produit par le programme, mais édité par les utilisateurs, j'ai donc besoin de vraiment vérifier ce qui revient. J'ai donc essayé ...
if (DB_English.ToString() != Records.Elements("English").ToString())
... DB_English est de la base de données, mais le XML dans les archives, ne contient pas le contenu de ce champ, il contient ...
System.Xml.Linq.Extensions+<GetElements>d__29`1[System.Xml.Linq.XElement]
. .. alors, comment puis-je obtenir la valeur de cet élément dans le fichier XML? J'ai besoin de vérifier le champ dans le XML n'a pas été modifié, (les éditeurs manuels de ce fichier de données ne sont pas potentiellement fiables à 100%).
Matin Dan, essayé, le compilateur a lancé cette ... Erreur 'System.Collections.Generic.IEnumerable' ne contient pas une définition pour 'InnerXml' et aucune méthode d'extension 'InnerXML' acceptant un premier argument de type 'System.Collections.Generic.IEnumerable ' n'a été trouvée (manque-t-il une directive using ou une référence d'assembly?) –
Fossaw