//ns2:Point/ns2:pos
Nokogiri 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