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

Форум PHP

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

 

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

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

тема: Как получить имя (и значение) атрибута в XML-документе?
 
 автор: coloboc66   (29.09.2010 в 11:38)   письмо автору
 
 

Читал учебник, получается, что это можно сделать только с помощью объекта SimpleXML
Но у меня никак не получается написать корректный код вот для такого простого документа:
<?xml version="1.0" encoding="UTF-8"?>
<emperor name="August" rule="23-67" death="Peaceful"/>
<emperor name="Tiberius" rule="14-37" death="Murdered"/>

Может кто-нибудь поможет?
Спасибо.

  Ответить  
 
 автор: Trianon   (29.09.2010 в 12:42)   письмо автору
 
   для: coloboc66   (29.09.2010 в 11:38)
 

корневой элемент добавить не хотите?
<?
$xml 
=
'<?xml version="1.0" encoding="UTF-8"?>
<root>
 <emperor name="August" rule="23-67" death="Peaceful"/>
 <emperor name="Tiberius" rule="14-37" death="Murdered"/>
 <emperor name="Baturin" rule="55-74" death="Dethroned"/>
</root>
'
;

$a simplexml_load_string($xml);
print_r($a);

  Ответить  
 
 автор: Лена   (29.09.2010 в 12:59)   письмо автору
 
   для: coloboc66   (29.09.2010 в 11:38)
 


<?php
$data 
'<?xml version="1.0" encoding="UTF-8"?>
<root>
<emperor name="August" rule="23-67" death="Peaceful"/>
<emperor name="Tiberius" rule="14-37" death="Murdered"/>
</root>'
;

$xml = new SimpleXMLElement($data);
foreach (
$xml->emperor AS $emp)
    echo  
$emp['name'] . "\n";
?>

  Ответить  
 
 автор: sim5   (29.09.2010 в 12:59)   письмо автору
 
   для: coloboc66   (29.09.2010 в 11:38)
 

У вас ошибка в самом документе будет.
<?
$xml 
'<?xml version="1.0" encoding="UTF-8"?> 
<document>
<emperor name="August" rule="23-67" death="Peaceful"/> 
<emperor name="Tiberius" rule="14-37" death="Murdered"/>
</document>'
;
$xml simplexml_load_string($xml);
foreach(
$xml->emperor as $elm) {
  foreach(
$elm->attributes() as $atr => $val) echo $atr "=" $val "<br>";
}

  Ответить  
 
 автор: coloboc66   (29.09.2010 в 16:05)   письмо автору
 
   для: sim5   (29.09.2010 в 12:59)
 

Фигня какая-то происходит.
Вот файл emperors1_en.xml
<?xml version="1.0" encoding="UTF-8"?>
<root>
<emperor name="August" rule="23-67" death="Peaceful"/>
<emperor name="Tiberius" rule="14-37" death="Murdered"/>
</root>

Вот код РНР:
$xmlDoc=simplexml_load_file('emperors1_en.xml');
$xmlstr = simplexml_load_string($xmlDoc);
$xml = new SimpleXMLElement($xmlstr);
foreach($xml->emperor as $elm) { 
  foreach($elm->attributes() as $atr => $val) echo $atr . "=" . $val . "<br>"; 
}

Получаю кучу ошибок...

  Ответить  
 
 автор: sim5   (29.09.2010 в 16:12)   письмо автору
 
   для: coloboc66   (29.09.2010 в 16:05)
 

Если вы прочли из файла (simplexml_load_file), то зачем вы еще читаете в строку и создаете объект конструктором?
<?
$xmlDoc
=simplexml_load_file('emperors1_en.xml'); 
foreach(
$xmlDoc->emperor as $elm) {  
  foreach(
$elm->attributes() as $atr => $val) echo $atr "=" $val "<br>";  
}

  Ответить  
 
 автор: coloboc66   (29.09.2010 в 16:44)   письмо автору
 
   для: sim5   (29.09.2010 в 16:12)
 

Воо... Спасибо! Два дня мудохался.:)

  Ответить  
 
 автор: coloboc66   (29.09.2010 в 17:37)   письмо автору
 
   для: sim5   (29.09.2010 в 16:12)
 

Опять не могу додкматься: как вывести имена атрибутов в ячейки <th></th> таблицы, а значения атрибутов - в <td></td> динамически?

  Ответить  
 
 автор: sim5   (29.09.2010 в 17:40)   письмо автору
 
   для: coloboc66   (29.09.2010 в 17:37)
 

Только через переменную.

  Ответить  
Rambler's Top100
вверх

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