将XLS文件解析为xml或json

时间:2014-10-16 05:25:02

标签: symfony xls

我得到了一个" xls"来自网络服务的回复。不幸的是,该服务仅返回此格式。我想将此文件解析为xml或json。我使用框架symfony。存在任何用于处理XLS文件的包,您会推荐哪种?

或者我可以用平坦的PHP解决这个问题吗?

更新

xls响应看起来像这样,在这里我可以展示前几个linse:

<?xml version="1.0" encoding="UTF-8"?>
<xls:XLS xmlns:xls="http://www.opengis.net/xls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" version="1.1" xsi:schemaLocation="http://www.opengis.net/xls http://schemas.opengis.net/ols/1.1.0/RouteService.xsd">
  <xls:ResponseHeader xsi:type="xls:ResponseHeaderType" sessionID="unknown"/>
  <xls:Response xsi:type="xls:ResponseType" requestID="unknown" version="1.1" numberOfResponses="1">
    <xls:DetermineRouteResponse xsi:type="xls:DetermineRouteResponseType">
      <xls:RouteSummary>
        <xls:TotalTime>PT22M7S</xls:TotalTime>
        <xls:TotalDistance uom="KM" value="33.7"/>
        <xls:BoundingBox srsName="EPSG:4326">
          <gml:pos>7.8854063 49.9412442</gml:pos>
          <gml:pos>8.2769550 50.0041191</gml:pos>
        </xls:BoundingBox>
      </xls:RouteSummary>
  ......

如果我尝试使用&#34; simplexml_load_string&#34;解析响应。该函数仅返回以下输出。

class SimpleXMLElement#1341 (1) {
  public $@attributes =>
  array(1) {
    'version' =>
    string(3) "1.1"
  }
}

该函数仅显示版本而不显示子节点。我如何访问子节点?

我尝试使用以下语法访问孩子:

$xml = simplexml_load_string($response);
var_dump($xml->children('xls', true)->Response->numberOfResponses);

但没有任何成功。

解决

现在我解决了我的问题。

$xml = simplexml_load_string($response);
echo $xml->children('http://www.opengis.net/xls')->Response->DetermineRouteResponse->RouteSummary->TotalTime;

0 个答案:

没有答案