【问题标题】:XML node extraction with PHP and simplexml_load_file使用 PHP 和 simplexml_load_file 提取 XML 节点
【发布时间】:2014-12-14 17:16:47
【问题描述】:

我正在尝试提取 XML 提要的值:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.xchange%20where%20pair%20in%20(%22EURUSD%22)&env=store://datatables.org/alltableswithkeys

XML 如下所示:

<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="1" yahoo:created="2014-12-14T17:12:13Z" yahoo:lang="en-us">
  <results>
    <rate id="EURUSD">
      <Name>EUR to USD</Name>
      <Rate>1.2463</Rate>
      <Date>12/13/2014</Date>
      <Time>7:23am</Time>
      <Ask>1.2466</Ask>
      <Bid>1.2461</Bid>
    </rate>
  </results>
</query>

我尝试使用 simplexml 加载文件,但它不工作?

<?php 
$xmlfile = '$url';
$xml = simplexml_load_file($xmlfile); 
print $xml->results->rate->name; 
?> 

【问题讨论】:

  • 提示 #1:在 XML 元素名称中大小写很重要 - 提示 #2:给出的答案没有错,但是 print 确实将其转换为字符串,因此不需要在其中给出的代码。 --- 摘要:您刚刚在代码中打错了字,将单词“Name”用小写的第一个字母“N”写成。就这样。印刷错误通常不算作编程问题,所以如果您想知道为什么您的问题可能会被关闭并最终从网站上消失,那就是原因。

标签: php xml rss simplexml


【解决方案1】:

案件很重要name != Name

print $xml->results->rate->Name;

输出:

欧元兑美元

【讨论】:

    【解决方案2】:

    $xml->results->rate->Name 返回一个 SimpleXMLElement

    $xml->results->rate->Name->__toString()
    

    【讨论】:

      猜你喜欢
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多