【问题标题】:A Simple Xpath to Google Spreadsheet ImportXMLGoogle 电子表格 ImportXML 的简单 Xpath
【发布时间】:2014-05-10 12:07:43
【问题描述】:

这是我要从中导入的 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")

【问题讨论】:

    标签: xml xpath google-sheets


    【解决方案1】:

    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属性的内容。

    【讨论】:

    • 出于某种我不明白的原因,您还必须将所有属性名称小写才能使其工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    相关资源
    最近更新 更多