【发布时间】:2020-06-11 13:20:02
【问题描述】:
鉴于此数据集位于:https://dd.weather.gc.ca/observations/xml/ON/today/today_on_20200129_f.xml
我认为我没有正确处理命名空间,但我不确定在这里做什么。
我如何获得一个 om:member 节点,其中 om:member/om:Observation/om:metadata/set/identification-elements/element/name=wmo_station_number 其值为,例如 71704。
我有这个:
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);
我知道这是一种愚蠢的尝试,但似乎只要我尝试没有命名空间前缀的任何东西,我就会得到错误或什么都没有返回。
【问题讨论】:
标签: c# xml xpath xml-namespaces xmldocument