我只是学习Livecode并尝试一些教程来从XML格式获取数据。我只是混淆了。
以下是我的XML代码:
<current><city id="1642911" name="London"><coord lon="106.83" lat="-6.17"/><country>Indonesia</country><sun rise="2014-05-29T22:56:30" set="2014-05-30T10:43:59"/></city><temperature value="302.254" min="302.254" max="302.254" unit="kelvin"/><humidity value="76" unit="%"/><pressure value="971.07" unit="hPa"/><wind><speed value="1.24" name="Calm"/><direction value="20.5019" code="NNE" name="North-northeast"/></wind><clouds value="20" name="few clouds"/><precipitation mode="no"/><weather number="801" value="few clouds" icon="02d"/><lastupdate value="2014-05-30T04:50:44"/></current>
这是我的Livecode代码:
<?lc
#get location
put url ("http://api.openweathermap.org/data/2.5/weather?q=London&mode=xml") into Location
#get lon and lat
put revCreateXMLTree(Location, false, true, false) into locationTree
put revXMLNodeContents(locationTree, "current/city/coord/lat") into latitude
put revXMLNodeContents(locationTree, "current/city/coord/lat") into longitude
#put longitude and latitude information to weather url
put url ("http://api.openweathermap.org/data/2.5/weather?lat=" & latitude & "&lon=" & longitude & "&mode=html") into weather
put weather
问题是,我不知道如何调用XML (locationTree, "current/city/coord/lat")
上的数据,代码就像这样<coord lon="106.83" lat="-6.17"/>
。你可以帮帮我吗?谢谢。
答案 0 :(得分:1)
我在加载
时收到地球数据 http://api.openweathermap.org/data/2.5/weather?lat=0&lon=0&mode=html
在浏览器中。
可能是你的第二个put url
命令没有加载正确的变量然后加载纬度和经度= 0?
另外,请确保revXMLNodeContents
:
put revXMLNodeContents(pTree, "preferences/recentDocuments/" & tRecentDocument) & return after tListOfRecentDocuments
您的示例看起来不知道要加载到LONG和LAT中的哪个城市。当你踩到代码时,你能看到它正在做正确的事吗?
更新: 1.在放置RevCreateXMLTree locationTree 时纠正错字
答案 1 :(得分:0)
从6.5.0开始,您可以使用revDataFromXPathQuery()
使用更兼容的XPath版本。在您的脚本中将revXMLNodeContents...
替换为
put "current/city/coord[@lat]" into myXPath
revDataFromXPathQuery(locationTree,myXPath) into myLong
坦率地说,我还没有尝试过这个,但6.5的发行说明表明这应该有用。