[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не получается вывести данные из xml
pH43
Доброе время суток! Не получается забрать и вывести данные из файла xml. Подскажите, пожалуйста, заранее благодарю! Просидел три дня, не выходит . Видимо, проблемы дочерними элементами, очень путает карты двоеточие в названиях

<rs:data>
<
z:row param1='3000' param2='4000' param3='8000' />
</
rs:data>


Пытаюсь вывести с помощью этого php:

<?php

header("Content-Type: text/html; charset=utf-8");

$xml = simplexml_load_file("./file.xml");

foreach ($xml->data as $offer) {

echo $offer->xpath('row[@param1="Параметр1"]')[0];
echo $offer->xpath('row[@param2="Параметр2"]')[0];
echo $offer->xpath('row[@param3="Параметр3"]')[0];

}

?>


В итоге должно получиться примерно так:

3000
4000
8000

brevis
$previous_use_error = libxml_use_internal_errors(true);

$xml = simplexml_load_file("./file.xml");

if ($row = $xml->{'z:row'}) {
foreach ($row->attributes() as $attr => $value) {
echo $attr . ': ' . $value . PHP_EOL;
}
}


libxml_use_internal_errors($previous_use_error);


https://glot.io/snippets/fs97gmxqhg

_____________
Чатик в телеге
pH43
Цитата (brevis @ 19.10.2020 - 16:52)
$previous_use_error = libxml_use_internal_errors(true);

$xml = simplexml_load_file("./file.xml");

if ($row = $xml->{'z:row'}) {
foreach ($row->attributes() as $attr => $value) {
  echo $attr . ': ' . $value . PHP_EOL;
}
}


libxml_use_internal_errors($previous_use_error);


https://glot.io/snippets/fs97gmxqhg





Огромное спасибо, всё работает!!! Но когда в файле xml присутствуют другие теги, код работать перестает. Вот полный файл:

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<
s:Schema id='RowsetSchema'>
<
s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<
s:AttributeType name='param1' rs:number='1' rs:nullable='true'>
<
s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
</
s:AttributeType>
<
s:AttributeType name='param2' rs:number='2' rs:nullable='true'>
<
s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
</
s:AttributeType>
<
s:AttributeType name='param3' rs:number='3' rs:nullable='true'>
<
s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
</
s:AttributeType>
<
s:AttributeType name='param4' rs:number='4' rs:nullable='true'>
<
s:datatype dt:type='number' rs:dbtype='numeric' dt:maxLength='19' rs:scale='0' rs:precision='18' rs:fixedlength='true'/>
</
s:AttributeType>
<
s:AttributeType name='param5' rs:number='5' rs:nullable='true'>
<
s:datatype dt:type='number' rs:dbtype='numeric' dt:maxLength='19' rs:scale='0' rs:precision='18' rs:fixedlength='true'/>
</
s:AttributeType>
<
s:extends type='rs:rowbase'/>
</
s:ElementType>
</
s:Schema>
<
rs:data>
<
z:row param1='3000' param2='4000' param3='8000' param4='9000' param5='1000'/>
</
rs:data>
</
xml>







Не понимаю, как наличие тегов так сильно отражается, что php не срабатывает...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.