Google电子表格ImportXML的简单X路径

时间:2014-05-10 12:07:44

标签: xml xpath google-sheets

这是我要导入的XML: http://api.eve-marketdata.com/api/item_history2.xml?char_name=demo&region_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>

但由于它不是灰色文本,我如何获得该行的volumeorders值? 另一个,如果可能的话,如何才能从date中提取一个2014-05-08

这很简单,但我无法弄明白,因为我对所有这一切都很陌生,我甚至不知道该怎么去谷歌

这是我迄今为止所做的尝试:

=IMPORTXML("http://api.eve-marketdata.com/api/item_history2.xml?char_name=demo&region_ids=10000002&type_ids=16669&days=2" , "/emd/result/rowset/row")

1 个答案:

答案 0 :(得分:2)

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
例如,

获取第一行的datevolumeorders属性的内容。