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

<book>
<title>
Шерлок Холмс</title>
<author>
Дойл Артур Конан</author>
</book>
<book>
<title>
Парфюмер. История одного убийцы</title>
<author>
Патрик Зюскинд</author>
</book>



Создать файл .php чтобы выводилась таблица с соответствующим автором и названием, данные из файла xml:

<table width="50%" border="1" align="center">
<tr>
<td>
title</td>
<td>
author</td>
</tr>
<tr>
<td>
...</td>
<td>
...</td>
</tr>
<tr>
<td>
...</td>
<td>
..</td>
</tr>
<tr>
<td>
...</td>
<td>
...</td>
</tr>
</table>







Спустя 1 час, 26 минут, 59 секунд (7.12.2010 - 13:41) Renden написал(а):
sergeyvl
не работал с xml, но еслиб это было в html я бы сделал как-то так:
считал бы файл в масив file (1.html);
регуляркой бы обрезал теги, и заного запихнул бы в масив, перебрал и вывел в php так как надо.
к сожалению на примере немогу показать я не эксперт, но яб делал как-то так, неуверен что это верно.
А вообще я бы сначала xml в базу бы запихал, а из базы выводил, с ней как-то проще чтоль, все по полочкам - приятно)

Спустя 17 минут, 41 секунда (7.12.2010 - 13:58) sergeyvl написал(а):
Спасибо за ответ, я сделал таким способом:

<?
function
start_tag_parse($xml, $tag, $attib){
if($tag != 'BAZA' and $tag != 'GROUP') echo "<td>";
if($tag == 'GROUP') echo "<tr>";
}
function end_tag_parse($xml, $tag){
if($tag != 'BAZA'){
if($tag == 'GROUP') echo "</tr>";
if($tag != 'GROUP') echo "</td>";
}
}

function character_parse($xml, $data){
echo $data;
}
$xml = xml_parser_create("UTF-8");
xml_set_element_handler($xml,"start_tag_parse","end_tag_parse");
xml_set_character_data_handler($xml, "character_parse");
?>
<table width="50%" cellpadding="0" cellspacing="0" align="center">
<
tr>
<
td>
<
b>Имя</b>
</
td>
<
td>
<
b>Логин</b>
</
td>
<
td>
<
b>Пароль<b>
</
td>
</
tr>
<? xml_parse($xml, file_get_contents("base.xml")); ?>
</table>


<?xml version="1.0" encoding="utf-8"?>
<baza>
<group>
<name>
вася</name>
<login>
vasa</login>
<pass>
111</pass>
</group>
<group>
<name>
оля</name>
<login>
ola</login>
<pass>
222</pass>
</group>
<group>
<name>
лена</name>
<login>
lena</login>
<pass>
333</pass>
</group>
</baza>


Спустя 3 часа, 33 минуты, 55 секунд (7.12.2010 - 17:32) SlavaFr написал(а):
вот я себе думаю, а зачем xsl придумали?
http://ru2.php.net/manual/en/book.xsl.php

Спустя 21 минута, 53 секунды (7.12.2010 - 17:54) SlavaFr написал(а):
пример хмл:

<?xml version="1.0" encoding="utf-8"?>

<books>
<book>
<title>
Шерлок Холмс</title>
<author>
Дойл Артур Конан</author>
</book>
<book>
<title>
Парфюмер. История одного убийцы</title>
<author>
Патрик Зюскинд</author>
</book>
</books>



и хsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template
match="/">
<html>
<body>
<h2>
Книги</h2>
<table
border="1">
<tr
bgcolor="#9acd32">
<th>
Тител</th>
<th>
Автор</th>
</tr>
<xsl:for-each
select="books/book">
<tr>
<td><xsl:value-of
select="title" /></td>
<td><xsl:value-of
select="author" /></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>


Быстрый ответ:

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