【问题标题】:XDocument - finding the value of a specific nodeXDocument - 查找特定节点的值
【发布时间】:2012-06-28 13:30:47
【问题描述】:

我在使用 XDocument 时遇到问题。我需要的是在这个 xml 中获取一个名为“LocalityName”的节点的值:http://maps.google.com/maps/geo?q=59.4344,24.3342&output=xml&sensor=false

我使用 XmlDocument 完成了这项工作:

        XmlDocument doc = new XmlDocument();
        doc.Load("http://maps.google.com/maps/geo?q=54.9133,23.9001&output=xml&sensor=false");

        XmlNodeList myElement = doc.GetElementsByTagName("Locality");
        foreach (XmlNode node in myElement)
        {
            XmlElement myElement = (XmlElement)node;
            string varN = myElement.GetElementsByTagName("LocalityName")[0].InnerText;

不知道这是否是最好的方法,但它确实有效。现在我需要对 XDocument 做同样的事情。我一直在寻找整个晚上,但没有什么对我有用。请指出我正确的方向。谢谢!

【问题讨论】:

    标签: linq-to-xml


    【解决方案1】:

    这里有两种使用 XDocument 的方法:

        XDocument doc = XDocument.Load("http://maps.google.com/maps/geo?q=54.9133,23.9001&output=xml&sensor=false");
    
        var localityName = doc.Descendants(XName.Get("LocalityName", @"urn:oasis:names:tc:ciq:xsdschema:xAL:2.0")).First().Value;
    
        var localityName2 = (from d in doc.Descendants()
                             where d.Name.LocalName == "LocalityName"
                             select d.Value).First();
    

    第一种方法 (localityName) 假设您知道命名空间,请参阅 https://stackoverflow.com/a/6209890/1207991 了解更多信息。

    第二种方法 (localityName2) 不需要命名空间,请参阅https://stackoverflow.com/a/2611152/1207991 了解更多信息。

    【讨论】:

    • 谢谢!奇迹般有效。但是你能解释一下为什么你使用那个奇怪的命名空间(urn:oasis:names:tc:ciq:xsdschema:xAL:2.0)而不是第一个吗?我整个晚上都在试图弄清楚 XDocument 的行为方式,但没有运气。我想这对我来说太早了:)
    • Aaand 这是另一个问题。在为 windows phone 开发时,我不能将 URL 与 XDocument 一起使用。但与此同时,在 Visual C# 2010 中为桌面应用程序执行此操作也很好。为什么会产生这种限制?
    • 您的 URL 中的 XML 示例已更改,但我使用了奇怪的命名空间,因为它是最近的祖先节点的命名空间,具有命名空间(而不是根节点的命名空间 earth.google.com/kml/2.0 )。我对 WP 开发不太熟悉,但也许这会有所帮助:stackoverflow.com/questions/5637773/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多