1

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でも同じことをする必要があります。私は一晩中探していましたが、何もうまくいきません。正しい方向に私を指摘してください。ありがとうございました!

4

1 に答える 1

4

XDocumentを使用する2つの方法は次のとおりです。

    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を参照してください。

2番目のメソッド(localityName2)は名前空間を必要としません。詳細については、 https://stackoverflow.com/a/2611152/1207991を参照してください。

于 2012-06-28T05:30:47.770 に答える