Compte tenu de cet ensemble de données à: https: // dd. météo.gc.ca/observations/xml/on/today/today_on_20200129_f.xml
Je pense que je suis ne pas traiter des espaces de noms correctement strong> mais je ne suis pas sûr quoi faire ici. Comment obtiendrais-je l'OM: membre de membre où OM: membre / OM: Observation / OM: métadonnées / SET / IDENTIFICATION-ELEMENTS / ELEMENT / NOM = WMO_STATION_NUMBER ET SON VALUE EST, Par exemple 71704. / p> J'ai ceci: p> xml.Load(url);
var nsmgr = new XmlNamespaceManager(xml.NameTable);
nsmgr.AddNamespace("om", "http://www.opengis.net/om/1.0");
nsmgr.AddNamespace("", "http://dms.ec.gc.ca/schema/point-observation/2.1");
nsmgr.AddNamespace("gml", "http://www.opengis.net/gml");
nsmgr.AddNamespace("xlink", "http://www.w3.org/1999/xlink");
nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
nsmgr.PushScope();
// "Observation//element[@name='{identifier}']";
var tmp = xml.SelectSingleNode("//om:member/om:Observation/om:metadata", nsmgr);
3 Réponses :
Merci pour votre réponse .. Pour une raison quelconque, cela ne fonctionne pas pour moi. Je veux dire que ça a l'air bien. Je joue avec ceux comme ça, il semblerai dès que j'introduit un nom d'élément qui n'a aucun préfixe qu'il renvoie null. Je pense que mon problème a quelque chose à voir avec le gestionnaire d'espaces de noms.
I Introduisez un nom d'élément qui n'a pas de préfixe qu'il renvoie NULL code> vous voulez dire sans
@ code> pour
nom code> Attribut?
Je penserais que cela me donnerait des données: // om: membre / OM: Observation / OM: Metadata / Set mais ce que je reçois est null. L'élément défini n'a pas de préfixe.
C'est bizarre. Je vois les données lorsque vous avez essayé votre // om: membre / om: Observation / OM: métadonnées / SET CODE> XPATH dans le Testeur XPath
Voici un moyen d'utiliser system.xml.linq code>
Merci. Je vais l'utiliser et monter jusqu'à ce que cela me donne les données que je veux. Je veux toujours savoir ce qui n'allait pas avec ce que je faisais mais c'est plus gentil de toute façon.
@ carny666 J'ai fait une mise à jour qui allonge le code mais devrait améliorer les performances, car l'utilisation de .descendants (), donc tôt vérifierait de nombreux nœuds que nécessaire. J'ai bien peur que je ne connaisse pas comment le faire en utilisant xmldocument
Peut-être que vous pouvez essayer: