Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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
如何使用php访问来自url的xml输出中的数据点?_Php_Arrays_Json_Xml - Fatal编程技术网

如何使用php访问来自url的xml输出中的数据点?

如何使用php访问来自url的xml输出中的数据点?,php,arrays,json,xml,Php,Arrays,Json,Xml,我试图从下面的XML访问单个数据点。然后,我的目标是插入到html表中。下面的代码给了我一个stdClass对象,我不知道如何获取一个数据点 以下是XML: <?xml version="1.0" encoding="utf-8"?> <response> <status> <code>0</code> <message>OK</message> &

我试图从下面的XML访问单个数据点。然后,我的目标是插入到html表中。下面的代码给了我一个stdClass对象,我不知道如何获取一个数据点

以下是XML:

<?xml version="1.0" encoding="utf-8"?>
<response>
  <status>
    <code>0</code>
    <message>OK</message>
  </status>
  <data _idtype="ticker" _id="QYLD" _MstarId="F00000QEMN" _CurrencyId="CU$$$$$USD">
    <api _id="z87pq63qh3gbhraf">
      <TS-DayEndTradingVolume>55769</TS-DayEndTradingVolume>
      <TS-DayEndNAV>25.11</TS-DayEndNAV>
      <DP-NAVChange>0.11</DP-NAVChange>
      <DP-NAVChangePercentage>0.440000</DP-NAVChangePercentage>
      <FNA-FundNetAssets>186075814</FNA-FundNetAssets>
      <DP-DayEndDate>2018-02-27</DP-DayEndDate>
      <TS-MarketPriceOpen>25.2</TS-MarketPriceOpen>
      <PS-PriceToEarnings>0.03678</PS-PriceToEarnings>
      <TS-DayEndMarketPrice>25.06</TS-DayEndMarketPrice>
      <DMP-MarketPriceChange>-0.07</DMP-MarketPriceChange>
      <DMP-MarketPriceChangePercentage>-0.278552</DMP-MarketPriceChangePercentage>
      <DTTRV-NAV>24.98000</DTTRV-NAV>
      <DMP-SharesOutstanding>7448991.76741</DMP-SharesOutstanding>
      <DP-PremiumDiscount>0.32</DP-PremiumDiscount>
    </api>
  </data>
</response>
而PHP:

$xml = simplexml_load_file($url); // URL with above XML

$jsonConvert = json_encode($xml);

$singleDataPoint = json_decode($jsonConvert);

print_r($singleDataPoint)

实际上,json函数根本没有做任何事情
json_encode
json_decode
相反,因此您可以完全省略这两行

可以找到数据点的内容,例如:

$xml = simplexml_load_file($url);
var_dump($xml->data->api->{'TS-DayEndTradingVolume'}->__tostring());
如果您只是
回显
值或在字符串上下文中使用它,则不需要
\u toString()
,因为这会被暗示,但请注意,没有这一点,它实际上是
SimpleXMLElement
对象的实例,而不是实际的字符串。

$xml=simplexml\u load\u file($url);打印($xml->data->api->{'TS-DayEndTradingVolume'}->\uuu-tostring());使用“打印”可以让我只打印与数据关联的数字。谢谢你的帮助!