Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Преобразование XML->HTML


Автор: DubrovinAV 10.3.2008, 21:33
Есть XML файл. Стоит задача программно преобразовать его в HTML. Решил использовать для этого XSL. В результате должно получиться читабельно. Возникло несколько вопросов:

1. Что должно получиться на выходе в HTML(как можно представить содержимое XML, не какими средствами, а как визуально)?
2. Одна из идей выводить информацию одинаково выделяя блоки одного уровня вложенности(ваше мнение по этому поводу)?
3. Как лучше выделять все это дело?

Интересует больше не техническая а "эстетическая" smile  сторона.
 
Спасибо.

Автор: mishaSL 11.3.2008, 13:11
Цитата(DubrovinAV @  10.3.2008,  21:33 Найти цитируемый пост)

1. Что должно получиться на выходе в HTML(как можно представить содержимое XML, не какими средствами, а как визуально)?

Либо в виде таблиц, либо в виде списков. Если имеется в виду обобщенный вид.

Добавлено через 2 минуты и 29 секунд
Цитата(DubrovinAV @  10.3.2008,  21:33 Найти цитируемый пост)
2. Одна из идей выводить информацию одинаково выделяя блоки одного уровня вложенности(ваше мнение по этому поводу)?

Это логично. К примеру можушь взять YandexXML, результаты получаются в виде XML, а выводятся в виде списка (ну конечно там тоже есть свои особенности).
Цитата(DubrovinAV @  10.3.2008,  21:33 Найти цитируемый пост)
3. Как лучше выделять все это дело?

Вопрос до конца не понятен. Наверное цветом smile 

Автор: maxim1000 11.3.2008, 14:29
помнится, была такая темка, по крайней мере, помню, что чего-то думал с отступами

Добавлено через 50 секунд
http://forum.vingrad.ru/forum/topic-76226.html

Автор: DubrovinAV 16.3.2008, 16:21
допустим есть xml

Код

<phonebook>
 <un attr="1">
  <name>AAA</name>
  <addr>BBB</addr>
  <phone>555</phone>
 <un>
<un attr="2">
  <name>AAA1</name>
  <addr>BBB1</addr>
  <phone>5551</phone>
 <un>
<un attr="3">
  <name>AAA2</name>
  <addr>BBB2</addr>
  <phone>5552</phone>
 <un>
 ...
</phonebook>


Какое простеишее xsl нужно составить, что бы в броузере отображалось в читабельном виде,например:
Код

name AAA
addr BBB
phone 555
...

или хотябы вот так
Код

 AAA
 BBB
 555
...
 smile 

Автор: mishaSL 17.3.2008, 17:12
Вот пример:

XML:
Код

<?xml version="1.0" encoding="UTF-8"?>
<phonebook>
 <un attr="1">
  <name>AAA</name>
  <addr>BBB</addr>
  <phone>555</phone>
 </un>
<un attr="2">
  <name>AAA1</name>
  <addr>BBB1</addr>
  <phone>5551</phone>
 </un>
<un attr="3">
  <name>AAA2</name>
  <addr>BBB2</addr>
  <phone>5552</phone>
 </un>
</phonebook>


XSL:
Код

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<table border="1">
<tr bgcolor="#CCCCCC">
<td align="center"><strong>attr</strong></td>
<td align="center"><strong>name</strong></td>
<td align="center"><strong>addr</strong></td>
<td align="center"><strong>phone</strong></td>
</tr>
    <xsl:apply-templates select="phonebook/un"/>
</table>
</xsl:template>

<xsl:template match="phonebook/un">
    <tr>
        <td><xsl:value-of select="@attr" disable-output-escaping="yes" /></td>
        <td><xsl:value-of select="name" disable-output-escaping="yes" /></td>
        <td><xsl:value-of select="addr" disable-output-escaping="yes" /></td>
        <td><xsl:value-of select="phone" disable-output-escaping="yes" /></td>
    </tr>
</xsl:template>

</xsl:stylesheet>


Вывод сделан в виде таблицы. Для полноты примера еще вывел атрибут "attr".

Если что не понятно, спрашивайте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)