J'ai le document XML suivant:
<MimeType> <Extension>.aab</Extension> <Value>application/x-authorware-</Value> </MimeType> <MimeType> <Extension>.aam</Extension> <Value>application/x-authorware-</Value> </MimeType>
4 Réponses :
Utilisez xmldocument.selectSingLenode code >
.
exemple: p> alors vous pouvez accéder à puis utilisez ces valeurs lors de la construction de votre objet mimetype. p> EDIT: Quelques informations XPath. strong> espère que cela aide! p> p> nœud.childnodes code> afin d'obtenir les valeurs que vous voulez (exemple ): p>
Il existe de très bons tutoriels XPath, essayez ici et ici . Le La recommandation W3C elle-même peut être un peu accablante.
Pour votre exemple, vous pouvez essayer d'utiliser le XPath suivant pour sélectionner le premier nœud code> mimeType code> dans le document (où root code> est le nom de votre élément racine): P >
L'extrait de beignet résume tout ça! Il n'est guère plus difficile que ça. Vous voudrez peut-être vérifier ma réponse à la présente réponse à la section Stackoverflow.com/questions/1440184/... Pour une extraction plus longue indiquant les conditions d'erreur, ce qui est retourné lorsqu'il n'est pas trouvé, etc.
Ok je vais donner cela une chance ... une chance d'obtenir un exemple de xpath? Désolé d'être effronté?
Oui, ajouté des informations de XPath (liens + exemple simple) à ma réponse - espérons que cela aide.
La méthode suivante doit fournir un cadre pour obtenir le type MIME ici
public MimeType RunXPath(string mimeType) { XmlNode node = _xmlDoc.SelectSingleNode( string.Format("//MimeType/Extension[text()="{0}"]/ancestor::MimeType", mimeType)); foreach(XmlNode node in nodes) { // Extract the relevant nodes and populate the Mime Type here... } return ... }
Suivi sur La réponse de @Miffthefox , vous pouvez utiliser xpath strong> avec Linq à XML strong>. Voici un exemple basé sur vos échantillons de données. 1) strong> Tout d'abord, les espaces de noms dont vous aurez besoin: p> 3) strong> Définissez votre chemin de localisation XPath: 4) strong> passe le chemin d'accès à 5) strong> Enfin, extrayez la valeur MIMETYPE associée à l'extension: P> xelement code>: p>
xpathselectelement () code> pour sélectionner l'élément d'intérêt: p> xxx pré>
var mimeType = (string)selectedElement.Element("Value");
Êtes-vous obligé d'utiliser .NET 3.5? Si vous pouvez utiliser .NET 3.5, j'utiliserais XDocument et Linq vers XML, vous le trouverez plus simple que XPath.
Pas nécessairement. Il vaut mieux utiliser une combinaison de: Stackoverflow.com/Questtions/1294386/...
Oui forcé dans un coin .NET 2.