这是我要从中导入的XML:http : //api.eve-marketdata.com/api/item_history2.xml?char_name=demo®ion_ids=10000002&type_ids=16669&days=3
这些是上面的URL返回的XML内容:
<emd version="2">
<currentTime>2014-05-10 13:17:27</currentTime>
<result>
<rowset name="history" key="typeID,regionID,date" columns="typeID,regionID,date,lowPrice,highPrice,avgPrice,volume,orders">
<row typeID="16669" regionID="10000002" date="2014-05-08" lowPrice="27448" highPrice="37447.89" avgPrice="31586.6243" volume="156980" orders="24"/>
<row typeID="16669" regionID="10000002" date="2014-05-09" lowPrice="30501.17" highPrice="37445" avgPrice="36530.1858" volume="170121" orders="16"/>
<row typeID="16669" regionID="10000002" date="2014-05-10" lowPrice="33004" highPrice="33004.03" avgPrice="33004.0224" volume="40425" orders="3"/>
</rowset>
</result>
</emd>
但是由于它不是灰色文本,我如何获得行的volume
和orders
值?还有一个,如果可能的话,我如何才能使其仅从单个提取date
,例如2014-05-08
?
这很简单,但我无法弄清楚,因为我对所有这些都还很陌生,甚至不知道要用谷歌搜索什么
到目前为止,这是我尝试过的方法:
=IMPORTXML("http://api.eve-marketdata.com/api/item_history2.xml?char_name=demo®ion_ids=10000002&type_ids=16669&days=2" , "/emd/result/rowset/row")
XPath表达式:
/emd/result/rowset/row
将选择一个包含所有三行的节点集。如果希望选择特定的行,则应附加一个[]
包含所需行的谓词,例如:
/emd/result/rowset/row[2]
将选择第二行。
要从选定的行中选择单个属性,您只需要添加一个额外的位置步骤,即在属性名称前加上@
符号。您可以使用以下表达式:
/emd/result/rowset/row[1]/@date
/emd/result/rowset/row[1]/@volume
/emd/result/rowset/row[1]/@orders
获得的内容date
,volume
和orders
在第一行的属性,例如。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句