Как можно преобразовать XML в Plain text?

Если название форума вам о чём-то говорит, то значит, внутри вы найдете что-то для себя полезное.
ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Как можно преобразовать XML в Plain text?

Сообщение ANDLL » 22.03.2006 (Ср) 23:20

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

Собственно вопрос:

Какие существуют способы преобразовать XML в простой текст :?:

Сразу же сказать, что XSLT не подходит. Во-первых, официально говоря, это стандарт для преобразования документов из XML в XML.
Хотя, конечно, можно и в text преобразовывать, настроив output. Но, Вам кодга нибудь прихолоись писать такое преобразорание, когда вам надо вставлять тэги <!CDATA[[ каждый раз, когда надо написать кусочек, содержащий не подоходящее для XML сочетание символов? А потом еще надо писать ]]> что бы вставить что-то из XSL? В итоге XSL-код становится полностью нечитаемым. Так что, на мой взгляд, XSL это мягко говоря, не удобно. Каково Ваше мнение?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 22.03.2006 (Ср) 23:34

Пардон, конечно, мой французский, но XML вообще-то и так вполне себе текстовый... Или я чего-то не понимаю?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 10:18

XML вообще-то и так вполне себе текстовый
И? Что с того, не понимаю?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 23.03.2006 (Чт) 10:27

Мое мнение- задача сформулирована некорректно.

Что есть преобразование из XML в текст? И почему XSL не подходит?

Звучит как полная лажа.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 23.03.2006 (Чт) 16:49

Пример приведи.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 19:02

Простейший:
Код: Выделить всё
<A><N>a</N><B>1</B><B>2</B><B>3</B></A>
<A><N>b</N><B>5</B><B>4</B><B>8</B></A>

=>
Код: Выделить всё
a:
1,2,3
b:
5,4,8
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.03.2006 (Чт) 19:05

теперь понятно хотя бы чего хочется...
Весь мир матрица, а мы в нем потоки байтов!

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 23.03.2006 (Чт) 19:28

А атрибуты куда девать?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 19:46

Так, задам вопрос по-другому.

Какие аналоги XSL Вы знаете?

Этот вопрос надеюсь понятен? Или то же что-то странное и необычное?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 23.03.2006 (Чт) 20:27

а у тебя в примере и не XML вовсе :lol:

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 20:57

Чем это? Тем что нет врехнего элемента? Так это фрагмент.

Не народ, хватит выделываться, правда это даже не смешно.

Сначала меня спросили, как можно преобразовать XML(который вроде текстовый) в другой текстовый формат.
Когда я спросил, why not, мне так и не ответили.

Потом мне сказали, что задача сформулированна некорректно(я переформалировал). Потом у меня спросили, чем не подохит XSL(я не стал предлогать перечитать первый пост, в котором этому посвящен целый абзац, так как на суть вопроса это не влияет).

Потом меня попросили привести пример(я привел).

Потом мне скзали, что наконецто все понятно(очень приятно, правда, всегда мечтал что бы персонально !Viper!у были понятны мои вопросы. Прошу и впредь писать, когда мои посты будут Вам понятны)

Потом у меня спросили куда девать атрибуты?(опять же не ответил, потому что парень явно не читал про XSL, правда слава богу он то хоть по делу вопросы задавал, а не комментировал степень понятности)

Наконец мне заявили, что это не XML.

Просто хочу заметить, что тон весьма смахивает на тон некоего GSerg'а при ответе на некоторые вопросы. Однако, разумно замечать не только ТОН, которым некий GSerg изъясняется, но и то КОГДА он таким тоном изъясняется. Неужели каждый раз, когда ему чуток не ясен вопрос? А может еще какие-то еще причины есть все-таки?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.03.2006 (Чт) 22:33

Бедный GSerg... Ему то за что?
Lasciate ogni speranza, voi ch'entrate.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 23.03.2006 (Чт) 22:34

Совершенно не понятно раздражение в последнем ответе. Мне, например, тоже не понятно что за преобразование ты желаешь осуществить и чем не устраивает XSL. Из примера ничего не понятно: почему "а" и "b" на новых строках и отделены двоеточием, а цифры потом идут в одной строке и через запятую? Из вопроса я понял, что нужен какой-то универсальный способ преобразования XML в текст, т.е. по сути просто убрать тэги, а из примера получается, что преобразование должно быть контекстно зависимым. Тогда чем не устраивает XSL? (Первое сообщение я читал) Использовать CDATA при преобразовании XML нет необходимости, т.к., если данные уже в XML, то они валидны и для XSL. А для нестандартных символов окружающего текста можно использовать entities или шаблоны с подстановками.

Писать свой парсер для такой локальной задачи, по-моему, слишком накладно и не думаю, что он будет более функционален и читабелен чем XSL.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 22:37

Все, проехали :?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 23.03.2006 (Чт) 22:38

Ну во-первых, XML это структурированное хранилище данных, в отличии от Plain Text. Поэтому вполне резонен вопрос, по каким критериям и правилам тебе нужно преобразовать XML.
Про атрибуты тоже вполне резонный вопрос. Если тебе нужны только данные, можно было просто это прояснить. Но вообще-то в атрибутах содержится много информации, в том числе и той, которая влияет на вывод и отображение текста.
И наконец, фрагмент, который ты привел, ничего не проясняет.
Почему после <A> идет новая строка, а после <B> нет? Почему после <A> двоеточие, а после <B> запятая? Прежде чем задавать вопрос, сформилируй его про себя и подумай, а поймет ли его человек, который не телепат и не знаком с твоей задачей.
Lasciate ogni speranza, voi ch'entrate.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 23:08

Я же сказал, проехали.
Вопрос был, есть ли альтернатива XSL, никто ничего не ответил. Из чего я делаю вывод, что если таковая и есть, то про нее никто не знает.
Из полного нипонимания моего вопроса я понял, что никто не сталкивался с проблемой нечитаемости XSL-кода, и что только для меня является проблемой прочитать нечто вроде этого:
Код: Выделить всё
<DIV class="up_down_block" style="display:none;" id="aut_div">
<span style="font-size:14px; font-weight:bold; letter-spacing:1px; color:#DB7093;">]]><xsl:value-of select="aut_name"/><![CDATA[</span><br>
<A style="font-size:12px; color:#5cb9be;" target="_new" href="]]><xsl:value-of select="aut_webaddr"/><![CDATA[">]]><xsl:value-of select="aut_webaddr"/><![CDATA[</A><br>
<A style="font-size:12px; color:#5cb9be;" target="_new" href="mailto:]]><xsl:value-of select="aut_email"/><![CDATA[">]]><xsl:value-of select="aut_email"/><![CDATA[</A><br>
<span style="font-size:12px;">]]><xsl:value-of select="aut_desc"/><![CDATA[</span>
</DIV>
(фрагмент из одного моего проэкта).
Из чего я сделал вывод, что писать отдельный язык можно только разве что для себя. А на это врядли имеет смысл тратить энное время.

Особое спасибо, alibek'у и skiperski за содержательные посты.
Особое извините GSerg'у если ему вдруг покажеться(судя по http://bbs.vbstreets.ru/viewtopic.php?p=6593296#6593296) что тут было что-то против него.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 23.03.2006 (Чт) 23:15

Довольно странный синтаксис. А если так?
Код: Выделить всё
<DIV class="up_down_block" style="display:none;" id="aut_div">
   <span style="font-size:14px; font-weight:bold; letter-spacing:1px; color:#DB7093;"><xsl:value-of select="aut_name"/></span><br>
   <A style="font-size:12px; color:#5cb9be;" target="_new" href="{aut_webaddr}"/><xsl:value-of select="aut_webaddr"/></A><br>
   <A style="font-size:12px; color:#5cb9be;" target="_new" href="mailto:{aut_email}"/><xsl:value-of select="aut_email"/></A><br>
   <span style="font-size:12px;"><xsl:value-of select="aut_desc"/></span>
</DIV>

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 23.03.2006 (Чт) 23:24

То есть засунуть html-код как xml? Как минимум наличие тэгов <br> не очень понравится XML-парсеру.
Ну конечно можно завменить на <br/>...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 24.03.2006 (Пт) 1:02

Именно так. HTML, точнее XHTML, в XSL'е не надо выделять как CDATA. Только все теги должны быть закрыты. Брэйки я просто не заметил. Знаки больше/меньше заменяются на entities &gt; и &lt; соответственно. Всякие прочие непечатные символы на &#xxx;, где ххх - UNICODE символа. Ну и RTFM, конечно. Сходи на http://www.xpoint.ru - там много чего по теме есть.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.03.2006 (Пт) 10:30

Бред. Я пишу на XSLT+XHTML. ВСе теги закрываются, а атрибуты - в кавычках.

Как CDATA пишется только embedded CSS, если он вообще нужен (это бывает крайне редко).

Так что, нечего париться :) Пользуйтесь стандартными решениями, только читайте внимательно документацию.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.03.2006 (Пт) 11:07

XML Spy 2005 тебе в придачу :D , чтобы все было наглядно

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 24.03.2006 (Пт) 11:10

и вообще есть предложеньеце открыть новый раздел на форуме XML/XSLT/XHTML

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 24.03.2006 (Пт) 15:48


Гость
 

Re: Как можно преобразовать XML в Plain text?

Сообщение Гость » 30.03.2006 (Чт) 14:11

ANDLL писал(а):Собственно вопрос:

Какие существуют способы преобразовать XML в простой текст :?:




см XSL-FO XSL Formatting Objects http://www.w3schools.com/xslfo/default.asp

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 30.03.2006 (Чт) 14:28

Опять у нас гости пишут?
Lasciate ogni speranza, voi ch'entrate.

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 30.03.2006 (Чт) 20:18

Или аккаунт удалили.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.


Вернуться в XML/XSL/XHTML

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList