0

//ns2:Point/ns2:posNokogiri XML パーサーを使用 して、次の XML を解析して緯度経度の組み合わせを抽出しようとしていますが、うまくいきません。

<?xml version="1.0" encoding="UTF-8"?>
<ns1:XLS ns1:lang="en" rel="5.2.sp03" version="1.0" xmlns:ns1="http://www.opengis.net/xls">
    <ns1:ResponseHeader sessionID="wrx-rails1370997540"/>
    <ns1:Response numberOfResponses="1" requestID="10" version="1.0">
        <ns1:GeocodeResponse>
            <ns1:GeocodeResponseList numberOfGeocodedAddresses="1">
                <ns1:GeocodedAddress>
                    <ns2:Point xmlns:ns2="http://www.opengis.net/gml">
                        <ns2:pos>38.898331 -77.117273</ns2:pos>
                    </ns2:Point>
                    <ns1:Address countryCode="US">
                        <ns1:StreetAddress>
                            <ns1:Building number="4400"/>
                            <ns1:Street>Lee Hwy</ns1:Street>
                        </ns1:StreetAddress>
                        <ns1:Place type="CountrySubdivision">VA</ns1:Place>
                        <ns1:Place type="CountrySecondarySubdivision">Arlington</ns1:Place>
                        <ns1:Place type="MunicipalitySubdivision">Arlington</ns1:Place>
                        <ns1:PostalCode>22207</ns1:PostalCode>
                    </ns1:Address>
                    <ns1:GeocodeMatchCode accuracy="1.0" matchType="ADDRESS POINT LOOKUP"/>
                    <ns1:SpatialKeys>
                        <ns1:SpatialKey priority="0" val="1663355010"/>
                        <ns1:SpatialKey priority="1" val="2563322400"/>
                        <ns1:SpatialKey priority="2" val="3325185160"/>
                        <ns1:SpatialKey priority="3" val="3784086306"/>
                        <ns1:SpatialKey priority="4" val="4033029320"/>
                        <ns1:SpatialKey priority="5" val="4162373938"/>
                        <ns1:SpatialKey priority="6" val="4228264524"/>
                        <ns1:SpatialKey priority="7" val="4261514387"/>
                        <ns1:SpatialKey priority="8" val="4278215460"/>
                        <ns1:SpatialKey priority="9" val="4286585033"/>
                        <ns1:SpatialKey priority="10" val="4290774578"/>
                        <ns1:SpatialKey priority="11" val="4292870540"/>
                        <ns1:SpatialKey priority="12" val="4293918819"/>
                        <ns1:SpatialKey priority="13" val="4294443032"/>
                        <ns1:SpatialKey priority="14" val="4294705158"/>
                        <ns1:SpatialKey priority="15" val="4294836224"/>
                    </ns1:SpatialKeys>
                </ns1:GeocodedAddress>
            </ns1:GeocodeResponseList>
        </ns1:GeocodeResponse>
    </ns1:Response>
</ns1:XLS>

次のことを試すと、空の配列が返されます。

doc = Nokogiri::XML(response.body);
pos = doc.xpath('//ns2:Point/ns2:pos');

ジオコーディングされた住所要素にアクセスできますが、次を使用しても問題ありません。

doc.xpath('//ns1:GeocodeResponseList/ns1:GeocodedAddress')

ここで何が欠けているかについての手がかり。なんらかの理由で気に入らない名前空間の変更ですか?

私の環境は次のとおりです。 Nokogiri 1.5.9 Java Rails 3.2.11 jRuby 1.7.4 Windows 7 Box

4

1 に答える 1