XML+XSL = XML ?

User avatar
Gori
Уже с Приветом
Posts: 1065
Joined: 31 Mar 2003 21:52
Location: UA --> MD

XML+XSL = XML ?

Post by Gori »

Признаюсь сразу, что небольшой специалист по XML.
Просто возникла конкретная задача, и я когда-то вроде бы видел решение, поэтому пытаюсь соорудить нечто подобное, и мне кажется, что XML-решение самое подходящее в моем случае.

Меня интересует возможность просмотра XML-документа в формате XML (или просто древовидной форме) в окне браузера с использованием XSL-файла.
То есть если XML не содержит stylesheet-тэга, и его открыть браузером, то видим XML, или иерархическое дерево.
Если добавить XSL-файл, то правила меняются на HTML-правила: можно вывести таблицу, ссылка на элементы XML выводит значения как обычные строки, можно делать циклическую обработку, но формат вложенного дерева теряется.

Например,

<?xml version="1.0"?>
<fields description="errors">
<field Value="764" Line="0">
<TCCompareError>"Message 1"</TCCompareError>
</field>
<field Value="764" Line="0">
<TCCompareError>"Message 2"</TCCompareError>
</field>
</fields>

если открыть это в браузере, видим иерархическое дерево, ветви которого можно сворачивать-разворачивать.

А если добавить XSL... блин, могу вывести в таблицу, могу вывести просто на экран, но как выразить в XSL, что это должно быть дерево...

XML:
<?xml version="1.0"?>
<?xml:stylesheet type="text/xsl" href="b.xsl" ?>
<fields description="errors">
<field Value="764" Line="0">
<TCCompareError>"Message 1"</TCCompareError>
</field>
<field Value="764" Line="0">
<TCCompareError>"Message 2"</TCCompareError>
</field>
</fields>

XSL:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="/">
<xsl:for-each select="fields/field">
<xsl:value-of select="TCCompareError"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

Здесь элементы выводятся как обычные строки...

Может, надо использовать output method="xml", но простая вставка в XSL не помогает.

Боюсь, что в решении, которое я видел, просто использовался скрипт.
"Вы задаете сразу три вопроса -- мне одному ответить трудно" (с) Труффальдино
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Post by Falcon »

Вы как-то туманно изъясняетесь, вот посмотрите в аттачменте, по-моему то что вам нужно :)
You do not have the required permissions to view the files attached to this post.
User avatar
Gori
Уже с Приветом
Posts: 1065
Joined: 31 Mar 2003 21:52
Location: UA --> MD

Post by Gori »

Мда, обьясняюсь туманно -- видимо, я принимаю желаемое за действительное и не хватает правильной терминологии.
Мне показалось, что в примере, который я видел, страница в браузере выглядела точно так же, как при просмотре обычного XML, только с кастомизированными цветами и с некоторыми "спрятанными" тэгами, т.е., почти "как в XML, так и на экране"

Но все же скорее всего это действительно было реализовано как дерево с помощью скрипта.

Спасибо, Falcon, это действительно то, что нужно.
"Вы задаете сразу три вопроса -- мне одному ответить трудно" (с) Труффальдино
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Post by Falcon »

Gori wrote:Мда, обьясняюсь туманно -- видимо, я принимаю желаемое за действительное и не хватает правильной терминологии.
Мне показалось, что в примере, который я видел, страница в браузере выглядела точно так же, как при просмотре обычного XML, только с кастомизированными цветами и с некоторыми "спрятанными" тэгами, т.е., почти "как в XML, так и на экране"

Но все же скорее всего это действительно было реализовано как дерево с помощью скрипта.

Спасибо, Falcon, это действительно то, что нужно.


А браузер тоже человек, унутри у него неонка... :) т.е. такой же XSL. Вот можете подкрутить чего надо.
You do not have the required permissions to view the files attached to this post.
User avatar
Gori
Уже с Приветом
Posts: 1065
Joined: 31 Mar 2003 21:52
Location: UA --> MD

Post by Gori »

В последнем примере текст впечатляет... А как это можно посмотреть -- к нему нужен XML ?
"Вы задаете сразу три вопроса -- мне одному ответить трудно" (с) Труффальдино
Falcon
Уже с Приветом
Posts: 775
Joined: 10 May 2003 17:55
Location: Minsk->NJ->PA->CA

Post by Falcon »

Gori wrote:В последнем примере текст впечатляет... А как это можно посмотреть -- к нему нужен XML ?


Так в том и фокус что к нему годится любой XML. Этот XSL использует Internet Explorer чтобы показывать вам дерево тэгов так как вы привыкли его видеть. Я надеюсь что меня не расстреляют за reverse engineering :mrgreen:
User avatar
Gori
Уже с Приветом
Posts: 1065
Joined: 31 Mar 2003 21:52
Location: UA --> MD

Post by Gori »

Это действительно классно... нет слов... :lol:
"Вы задаете сразу три вопроса -- мне одному ответить трудно" (с) Труффальдино

Return to “Вопросы и новости IT”