Помогите спарсить XML

Otto

Постоялец
Регистрация
12 Май 2008
Сообщения
485
Реакции
161
Есть XML которые надо спарсить на php страницу. Подскажите как

Код:
<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <price>
    <name>Name 1</name>
    <company>Adidas</company>
    <city>USA</city>
    <amount>6.58</amount>
  </price>
  <price>
    <name>Name 2</name>
    <company>Nike</company>
    <city>Spane</city>
    <amount>114.84</amount>
  </price>
  <price>
    <name>Name 3</name>
    <company>Puma</company>
    <city>Italy</city>
    <amount>4.50</amount>
  </price>
</DocumentElement>

Нашёл в сети примерно аналогичный пример, только тут по другому парсится.

XML файл:
Код:
<?
$xml = simplexml_load_file("price.xml");
?>
<table border="1">
<?
foreach ($xml->xpath('/products/producs') as $producs) {
?>
    <tr>
        <td><?=$producs["id"]?></td>
        <td><?=$producs["name"]?></td>
        <td><?=$producs["val1"]?></td>
        <td><?=$producs["val2"]?></td>
    </tr>
<?
}
?>
</table>

PHP файл:
Код:
<?
$xml = simplexml_load_file("price.xml");
?>
<table border="1">
<?
foreach ($xml->xpath('/products/producs') as $producs) {
?>
    <tr>
        <td><?=$producs["id"]?></td>
        <td><?=$producs["name"]?></td>
        <td><?=$producs["val1"]?></td>
        <td><?=$producs["val2"]?></td>
    </tr>
<?
}
?>
</table>
 
PHP:
<?php $xml = simplexml_load_file("price.xml"); ?>
<table border="1">
<?php foreach ($xml->xpath('/DocumentElement/price') as $producs) { ?>
    <tr>
        <td><?php echo $producs->name; ?></td>
        <td><?php echo $producs->company; ?></td>
        <td><?php echo $producs->city; ?></td>
        <td><?php echo $producs->amount ?></td>
    </tr>
<?php } ?>
</table>
 
  • Нравится
Реакции: Otto
есть не большие дополнения как мне через поля <input> фильтровать вывод запись, елис бы было бы чистый запрос в ббазу, от туда я бы сделал бы, а тут малость не поиму.
 
чет я не доганяю ... причем тут <input> ( html тег это или элемент с xml ? ) к фильтрованию вывода ...

или <input> - это элемент в xml документе, исходя из значения которого нужно принять решение "выводить ли запись или нет" ?

если да, то просто будет что-то типа

PHP:
<?php foreach ($xml->xpath('/DocumentElement/price') as $producs) {

if( $producs->input  > 100  ){ // какое-то условие по которому делаем вывод 
 ?> 
<!--- ну а тут сам вывод --->
    <tr> 
        <td><?php echo $producs->name; ?></td> 
        <td><?php echo $producs->company; ?></td> 
        <td><?php echo $producs->city; ?></td> 
        <td><?php echo $producs->amount ?></td> 
    </tr> 
 <?php } ?>
<?php } ?>
 
Я делаю поиск по полям для фильтрации, т.е. виде ввода и вывода
 
есть не большие дополнения как мне через поля <input> фильтровать вывод запись, елис бы было бы чистый запрос в ббазу, от туда я бы сделал бы, а тут малость не поиму.
Посмотри, как берутся элементы из xml - через xpath('/DocumentElement/price'), далее можно обращатся через свойства $producs->city, так и фильтруй все так, как тебе нужно.
В крайнем случае, если не получается или слишком большой xml и с ним неудобно работать, загони все данные в бд, а оттуда уже с ними работай.
 
Назад
Сверху