Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 是Google Sheet';遵循特定标准的XPath查询?_Xml_Xpath_Google Sheets Formula - Fatal编程技术网

Xml 是Google Sheet';遵循特定标准的XPath查询?

Xml 是Google Sheet';遵循特定标准的XPath查询?,xml,xpath,google-sheets-formula,Xml,Xpath,Google Sheets Formula,我试图在谷歌电子表格中创建一个股票列表(PH股票),其中有一列包含最新价格,并将其与我设定的目标价格进行比较。今天下午我一直在尝试解析,但无法获取标记中的值 通过阅读XPath文档,我认为它只不过是这么简单:=IMPORTXML(“http://phisix-api.appspot.com/stocks/BPI.xml“,“//stocks/stock/price/amount”)遵循树的层次结构并跟踪我需要的标记。但它似乎不起作用。然后我尝试了=IMPORTXML(“http://phisix

我试图在谷歌电子表格中创建一个股票列表(PH股票),其中有一列包含最新价格,并将其与我设定的目标价格进行比较。今天下午我一直在尝试解析,但无法获取标记中的值

通过阅读XPath文档,我认为它只不过是这么简单:
=IMPORTXML(“http://phisix-api.appspot.com/stocks/BPI.xml“,“//stocks/stock/price/amount”)
遵循树的层次结构并跟踪我需要的标记。但它似乎不起作用。然后我尝试了
=IMPORTXML(“http://phisix-api.appspot.com/stocks/BPI.xml“,“//stocks/stock/price/amount/text()”
因为我需要的是标签中的文本,但不是骰子

是否有谷歌表单遵循的特殊编码/标准或格式?我唯一要做的就是使用
=IMPORTXML(“http://phisix-api.appspot.com/stocks/BPI.xml“,“/@symbol”)
我尝试的其他方法都不管用

我甚至尝试了生成的Xpath,它是:
/stocks[@xmlns=”http://phisix-api.appspot.com/phisix-stocks“]/stock[@symbol=“BPI”]/price/amount
但它不起作用


有什么建议吗?

所讨论的XML包含一个默认名称空间。它为XPath表达式创建了一个“问题”

Google Sheets(GS)似乎只与XPath 1.0兼容

如果您的环境支持XPath 2.0,则可以按如下方式使用名称空间通配符

XPath 2.0

/*:stocks/*:stock/*:price/*:amount/text()
/*[local-name()='stocks']/*[local-name()='stock']/*[local-name()='price']/*[local-name()='amount']/text()
XPath 1.0

/*:stocks/*:stock/*:price/*:amount/text()
/*[local-name()='stocks']/*[local-name()='stock']/*[local-name()='price']/*[local-name()='amount']/text()

生成的XPath是垃圾—在XDM数据模型中,永远不会有名为“xmlns”的属性。但它揭示了问题的原因,Yitzhak已经为您解决了这个问题。