2010-11-01 91 views
0

我在这个XML的文件格式:PHP的XML阅读器字段类型

<?xml version="1.0" encoding="UTF-8"?> 
<?mso-application progid="Excel.Sheet"?> 

<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:o="urn:schemas-microsoft-com:office:office"> 
<Styles> 
<Style ss:Name="Normal" ss:ID="Default"> 
<Alignment ss:Vertical="Bottom"/> 
<Borders/> 
<Font/> 
<Interior/> 
<NumberFormat/> 
<Protection/> 
</Style> 
<Style ss:Name="FormatedNumberBorderPatern" ss:ID="FormattedNumberBorderPatern"> 
<Alignment ss:WrapText="1" ss:Vertical="Center"/> 
<NumberFormat/> 
<Borders> 
<Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom"/> 
<Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left"/> 
<Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right"/> 
<Border ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top"/> 
</Borders> 
</Style> 
<Style ss:ID="s40"> 
<Alignment ss:Vertical="Bottom"/> 
<Font ss:Bold="1" ss:Color="#7A2A29" ss:Size="12" x:Family="Swiss" x:CharSet="204"/> 
</Style> 
<Style ss:ID="s25"> 
<Alignment ss:WrapText="1" ss:Vertical="Center" ss:Horizontal="Center"/> 
<Borders> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top"/> 
</Borders> 
<Font ss:Bold="1" ss:FontName="Arial Unicode MS"/> 
</Style> 
<Style ss:ID="m155750108"> 
<Alignment ss:WrapText="1" ss:Vertical="Bottom"/> 
<Borders> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top"/> 
</Borders> 
<Font ss:FontName="Arial Unicode MS"/> 
</Style> 
<Style ss:ID="empty"> 
<Alignment ss:Horizontal="Right"/> 
<Borders> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top"/> 
</Borders> 
<Font ss:Bold="1" ss:FontName="Arial Unicode MS"/> 
</Style> 
<Style ss:ID="s30"> 
<Alignment ss:WrapText="1" ss:Vertical="Center" ss:Horizontal="Left"/> 
<Borders> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Bottom"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Left"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Right"/> 
<Border ss:Color="#000000" ss:Weight="1" ss:LineStyle="Continuous" ss:Position="Top"/> 
</Borders> 
<Font ss:FontName="Arial Unicode MS"/> 
</Style> 
</Styles> 
<Worksheet ss:Name="Information"> 
<Table border="1"> 
<Column ss:Span="1" ss:Width="192"/> 
<Row ss:Height="31.5" ss:AutoFitHeight="0"> 
<Cell ss:StyleID="s40"> 
<Data ss:Type="String">Обменни курсове за 29.10.2010</Data> 
</Cell> 
</Row> 
<Row/> 
<Row> 
<Cell ss:StyleID="s25"> 
<Data ss:Type="String">Валута</Data> 
</Cell> 
<Cell ss:StyleID="s25"> 
<Data ss:Type="String">Код</Data> 
</Cell> 
<Cell ss:StyleID="s25"> 
<Data ss:Type="String">За единици валута</Data> 
</Cell> 
<Cell ss:StyleID="s25"> 
<Data ss:Type="String">Лева (BGN)</Data> 
</Cell> 
<Cell ss:StyleID="s25"> 
<Data ss:Type="String">Обратен курс за 1 лев</Data> 
</Cell> 
</Row> 
<Row> 
<Cell ss:StyleID="s30"> 
<Data ss:Type="String">Австралийски долар</Data> 
</Cell> 
<Cell ss:StyleID="s30"> 
<Data ss:Type="String">AUD</Data> 
</Cell> 
<Cell ss:StyleID="FormattedNumberBorderPatern"> 
<Data ss:Type="Number">1</Data> 
</Cell> 
<Cell ss:StyleID="FormattedNumberBorderPatern"> 
<Data ss:Type="Number">1.37579</Data> 
</Cell> 
<Cell ss:StyleID="FormattedNumberBorderPatern"> 
<Data ss:Type="Number">0.726855</Data> 
</Cell> 
</Row> 

..和等。 我只需要这一行后,拔出数据:

<Cell ss:StyleID="s30"> 

这个XML被拉出的银行(货币信息)。第一个字段是保加利亚货币的名称,第二个是代码(例如美元),第三个是金额,第四个是货币价值,第五个是您可以用一个保加利亚列弗购买多少货币BGN是我们的货币)。

我想创建一个货币转换器,但XML的格式混淆了我。 有人能告诉我如何将所有货币的信息提取出来吗?我需要在一个表中这些字段:

<Data ss:Type="String">Австралийски долар</Data> 
<Data ss:Type="String">AUD</Data> 
<Data ss:Type="Number">1</Data> 
<Data ss:Type="Number">1.37579</Data> 
<Data ss:Type="Number">0.726855</Data> 

这些线路重复(与单元格和行标签一起)所有在XML文件中的货币。 您能否给我一个单一货币的例子?我如何解决这些领域的数据?

+1

央行提供连续更易于访问的格式更新的外汇利率。请参阅[如何在PHP中实现汇率?](http://stackoverflow.com/questions/1973569/how-to-implement-exchange-rate-in-php/1973823#1973823)和[php script for currency conversion ](http://stackoverflow.com/questions/2635127/php-script-for-currency-conversion/2635428) – Gordon 2010-11-01 13:24:07

回答

1

该文件是一个XML Excel2003中的文件,在MS Excel 2003中引入了一个很少使用的SpreadsheetML格式,则有利于微软的Office Open XML SpreadsheetML中的废弃介绍了Excel2007的。通常这个文件是作为一个zip压缩文档找到的。

PHPExcel具有此格式的阅读器。我建议使用PHPExcel自己从文件中读取数据,或者使用读取器代码作为自己脚本的基础来访问您需要的信息。

+0

伟大的回应,你是对的!我真的认为这是一个XML文件..但它是XLS - 我从银行获得了错误的文件格式。我会得到正常的XML,所有应该工作。谢谢 ! – DreamWave 2010-11-01 13:31:38

+1

从技术上讲,它是一个xml文件......只是不像你所期望的那样结构化。 – 2010-11-01 13:34:38