Comment puis-je lire des éléments spécifiques de la chaîne XML à l'aide de XMLREADER en C#
J'ai la Chaîne XML:
<GroupBy Collapse=\"TRUE\" GroupLimit=\"30\">
<FieldRef Name=\"Department\" />
</GroupBy>
<OrderBy>
<FieldRef Name=\"Width\" />
</OrderBy>
Je suis nouveau en C#. J'ai essayé de lire le Nom de l'attribut de la FieldRef élément pour les deux éléments, mais je ne pouvais pas. J'ai utilisé XMLElement , est-il possible de choisir ces deux valeurs?
Ce code avez-vous essayé?
Quel est le reste de l'XML? XML valide doit avoir un nœud racine.
Quel est le reste de l'XML? XML valide doit avoir un nœud racine.
OriginalL'auteur Waleed | 2012-01-17
Vous devez vous connecter pour publier un commentaire.
Malgré l'affichage de XML non valide (pas de nœud racine), un moyen facile de faire une itération sur les <FieldRef> éléments est d'utiliser le
XmlReader.ReadToFollowing
méthode:Bien sûr un plus souple et fluide de l'interface est fournie par LINQ to XML, il serait peut-être plus facile à utiliser que si disponibles au sein de l' .NET framework que vous ciblez? Le code devient alors:
J'ai remarqué que le FieldRef élément n'est pas toujours dans la même nœud parent, descendants représentent le présent et l'extraire indépendamment de l'élément, il est imbriquée à l'intérieur. Si vous souhaitez également obtenir le parent de l'élément à l'aide de LINQ to XML, essayez ceci:
IEnumerable<KeyValuePair<XElement, string>> pairings = doc.Root.Descendants("FieldRef").Select(e => new KeyValuePair<XElement, string>(e.Parent, e.Attribute("Name").Value));
J'ai une chaîne pas un fichier, comment je vais définir doc grandeur? comme je vois sa XDocument type comment puis-je relier ma chaîne pour doc?
Désolé je n'avais pas conscience que, tant que la chaîne est valide XML (ce que votre posté XML n'est pas, il nécessite un nœud racine) alors vous pouvez utiliser le
XDocument doc = XDocument.Parse({xml});
méthode statique, qui est documenté sur MSDNJe suis désolé, mais j'ai une erreur: "le Système de.Les Collections.Génériques.IEnumerable<Système.Xml.Linq.XElement>' ne contient pas une définition pour 'Select' et aucune méthode d'extension 'Select' acceptant un premier argument de type 'System.Les Collections.Génériques.IEnumerable<Système.Xml.Linq.XElement>' a pu être trouvé (vous manque une directive using ou une référence d'assembly?) Dois-je définir e comme XMLElement avant? et quelle valeur dois-je lui donner?
OriginalL'auteur James Shuttler
essayez ceci:
OriginalL'auteur ojlovecd