【问题标题】:find specific nodes in Microsoft REST XML response在 Microsoft REST XML 响应中查找特定节点
【发布时间】:2015-03-24 20:14:06
【问题描述】:

我试图找到节点 TravelDistance 中的值,如图所示 但我也得到 Null 这是我的尝试

string url = @"https://dev.virtualearth.net/REST/V1/Routes?wp.0=43.104234, -77.627686&wp.1=43.103219, -77.621267&wp.2=43.100619, -77.624963&output=xml&distanceUnit=Mile&key= Ap5gFiZ56mvoqUXoswD2Hw81EZk5xMaCcP6JNzJOc-0xAf2wqTYgvSUZ8uhXJifZ";
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(url);

            XmlNode nodea = xmlDoc.SelectSingleNode("/Response/ResourceSets/ResourceSet/Resources/Route/TravelDistance");

【问题讨论】:

    标签: c# xml


    【解决方案1】:
    XmlNamespaceManager mgr = new XmlNamespaceManager(xmlDoc.NameTable);
    mgr.AddNamespace("x", "http://schemas.microsoft.com/search/local/ws/rest/v1");
    var dist = xmlDoc.SelectSingleNode("//x:Route/x:TravelDistance", mgr).InnerText;
    

    【讨论】:

    • 为什么这个答案的值为“-1”?这不公平
    • @FoggyFinder 因为一个白痴在测试或试图理解它之前投票。
    • 干得好!我不知道谁给你-1 我测试你的代码是正确的。但你能解释一下吗?
    • @HusseinTalib 您只需要阅读一些有关 xml 命名空间的内容(请参阅 xml 的第一行)。
    【解决方案2】:

    这样就解决了问题

    string url = @"https://dev.virtualearth.net/REST/V1/Routes?wp.0=43.104234, -77.627686&wp.1=43.103219, -77.621267&wp.2=43.100619, -77.624963&output=xml&distanceUnit=Mile&key= Ap5gFiZ56mvoqUXoswD2Hw81EZk5xMaCcP6JNzJOc-0xAf2wqTYgvSUZ8uhXJifZ";
    
                HttpWebRequest req = WebRequest.Create(url)
                                      as HttpWebRequest;
                string result = null;
                using (HttpWebResponse resp = req.GetResponse()  as HttpWebResponse)
                {
                    StreamReader reader =
                        new StreamReader(resp.GetResponseStream());
                    result = reader.ReadToEnd();
                }
                  string TravelDistance = result.Substring(result.IndexOf("<TravelDistance>") + "<TravelDistance>".Length, (result.IndexOf("</TravelDistance>") - result.IndexOf("<TravelDistance>")) - "<TravelDistance>".Length);
    

    如果有人有额外的解决方案,请告诉

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-28
      • 2012-02-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多