Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: XML И PHP
 
 автор: Чайка   (22.01.2007 в 11:18)   письмо автору
 
 

Здравствуйте! Помогите разобраться с xml файлами?
есть некий файл 3.xml который создан из excel, там два столбца телефон и имя, сам файл выглядит так


<?xml version="1.0"?>
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:o="urn:schemas-microsoft-com:office:office"
 xmlns:x="urn:schemas-microsoft-com:office:excel"
 xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
 xmlns:html="http://www.w3.org/TR/REC-html40">
 <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
  <LastAuthor>Slava</LastAuthor>
  <Created>2007-01-19T11:41:03Z</Created>
  <LastSaved>2007-01-20T08:45:12Z</LastSaved>
  <Version>10.3501</Version>
 </DocumentProperties>
 <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
  <DownloadComponents/>
  <LocationOfComponents HRef="file:///E:\"/>
 </OfficeDocumentSettings>
 <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
  <WindowHeight>9345</WindowHeight>
  <WindowWidth>15180</WindowWidth>
  <WindowTopX>120</WindowTopX>
  <WindowTopY>75</WindowTopY>
  <ProtectStructure>False</ProtectStructure>
  <ProtectWindows>False</ProtectWindows>
 </ExcelWorkbook>
 <Styles>
  <Style ss:ID="Default" ss:Name="Normal">
   <Alignment ss:Vertical="Bottom"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr" x:CharSet="204"/>
   <Interior/>
   <NumberFormat/>
   <Protection/>
  </Style>
  <Style ss:ID="s21">
   <Borders/>
  </Style>
  <Style ss:ID="s22">
   <Alignment ss:Vertical="Top"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr"/>
  </Style>
  <Style ss:ID="s23">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr" ss:Size="12" ss:Bold="1"/>
  </Style>
  <Style ss:ID="s24">
   <Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:WrapText="1"/>
   <Borders/>
   <Font ss:FontName="Arial Cyr" ss:Size="12"/>
  </Style>
 </Styles>
 <Worksheet ss:Name="tbl99">
  <Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="2" x:FullColumns="1"
   x:FullRows="1" ss:StyleID="s21">
   <Column ss:StyleID="s21" ss:Width="59.25"/>
   <Column ss:StyleID="s21" ss:Width="103.5"/>
   <Row ss:AutoFitHeight="0" ss:Height="15.75" ss:StyleID="s22">
    <Cell ss:StyleID="s23"><Data ss:Type="String">телефон</Data></Cell>
    <Cell ss:StyleID="s23"><Data ss:Type="String">имя</Data></Cell>
   </Row>
   <Row ss:AutoFitHeight="0" ss:Height="60">
    <Cell ss:StyleID="s24"><Data ss:Type="Number">5555555</Data></Cell>
    <Cell ss:StyleID="s24"><Data ss:Type="String">шуба</Data></Cell>
   </Row>
  </Table>
  <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
   <PageSetup>
    <Layout x:Orientation="Landscape"/>
    <Header x:Data="&amp;Л&amp;&quot;Arial Cyr,обычный&quot;&amp;08Страница __ из __"/>
    <PageMargins x:Bottom="0.984251969" x:Left="0.78740157499999996"
     x:Right="0.78740157499999996" x:Top="0.984251969"/>
   </PageSetup>
   <Print>
    <ValidPrinterInfo/>
    <PaperSizeIndex>9</PaperSizeIndex>
    <HorizontalResolution>600</HorizontalResolution>
    <VerticalResolution>0</VerticalResolution>
   </Print>
   <Selected/>
   <DoNotDisplayGridlines/>
   <Panes>
    <Pane>
     <Number>3</Number>
     <ActiveRow>1</ActiveRow>
     <ActiveCol>2</ActiveCol>
    </Pane>
   </Panes>
   <ProtectObjects>False</ProtectObjects>
   <ProtectScenarios>False</ProtectScenarios>
  </WorksheetOptions>
  <Sorting xmlns="urn:schemas-microsoft-com:office:excel">
   <Sort>СМИ</Sort>
  </Sorting>
 </Worksheet>
</Workbook>



скрипт для обработки думаю должен быть примерно такой


<?
    
if (!($parser xml_parser_create('UTF-8')))
    {
    echo(
'<p> ПРОГРАММУ ОБРАБОТКИ СОЗДАТЬ НЕ ВОЗМОЖНО! </P>');
    exit();
    }
    
//принять файл
    
$data file_get_contents("3.xml");
    
// ПРОАНАЛИЗИРОВАТЬ ФАЙЛ И ПОМЕСТИМ РЕЗ В МАССИВ
    
xml_parse_into_struct($parser$data$structure$index);
    
// УДАЛИТЬ ПРОГРАММУ ОБРАБОТКИ
    
xml_parser_free($parser);    
    foreach (
$structure as $index => $val)
    {        
        echo(
$val["value"]);
        
// как присвоить переменной $tel значения телефонов и переменной $name значения имена   
    
}
?>


вопрос как из xml файла извлекать номера телефонов и имена и присваивать переменным $tel и $name соответственно?

   
 
 автор: cheops   (22.01.2007 в 11:36)   письмо автору
 
   для: Чайка   (22.01.2007 в 11:18)
 

А номер телефона в каком поле находится?

   
 
 автор: Чайка   (22.01.2007 в 11:43)   письмо автору
 
   для: cheops   (22.01.2007 в 11:36)
 

примерно так
----------------------------------
| A | B |
-----------------------------------
| телефон | имя |
----------------------------------
| 5555555 | шуба |
----------------------------------

   
 
 автор: cheops   (22.01.2007 в 12:18)   письмо автору
 
   для: Чайка   (22.01.2007 в 11:43)
 

Нет, где цифра 555555 в XML-файле?

   
 
 автор: Чайка   (22.01.2007 в 12:43)   письмо автору
 
   для: cheops   (22.01.2007 в 12:18)
 

А что разве не видно?
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell ss:StyleID="s24"><Data ss:Type="Number">5555555</Data></Cell>
<Cell ss:StyleID="s24"><Data ss:Type="String">шуба</Data></Cell>
</Row>

   
 
 автор: Саня   (22.01.2007 в 13:15)   письмо автору
 
   для: cheops   (22.01.2007 в 11:36)
 

<?
$parser 
xml_parser_create('UTF-8');
$data =  file_get_contents("xml.xml");
xml_parse_into_struct($parser$data$structure$index);
xml_parser_free($parser);

foreach ( 
$structure as $tag ) {
  if ( 
$tag['tag'] !== "DATA" ) continue;
  if ( 
$tag['attributes']['SS:TYPE'] == "Number" )
    
$tel $tag['value'];
  
$name $tag['value'];
}
print 
$name." - ".$tel."<br/>";
Так сойдёт?

   
 
 автор: Чайка   (22.01.2007 в 15:15)   письмо автору
 
   для: Саня   (22.01.2007 в 13:15)
 

Спасибо

   
 
 автор: cheops   (22.01.2007 в 13:12)   письмо автору
 
   для: Чайка   (22.01.2007 в 11:18)
 

Извлечь информацию требуется именно при помощи xml_parse_into_struct() или регулярные выражения тоже сгодятся?

   
 
 автор: Чайка   (22.01.2007 в 15:11)   письмо автору
 
   для: cheops   (22.01.2007 в 13:12)
 

Все равно, главное чтоб реально извлечь можно было, но если будет много колонок с разными данными то, как быть?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования