Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некорректное отображение содержимого узлов, На лок.сервере все ок,а тес. сервере-нет 
:(
    Опции темы
ICEMAN3141592
Дата 17.1.2012, 08:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Здравствуйте, у меня тут магия. Вообщем, с помощью бибилотеки на сервер приходят данные в xml виде, далее с помощью XSLT-парсера переводятся в "кашку" html, css, javascript и отсылаются браузеру. Кашку варил не я, но я должен исправить следующий косяк. На локальном сервере у меня все нормально оторбражается, а на тестовом нет. Один файл, один код, НО отображается по разному (все смотрю в Mozilla Firefox)

Вот xsl - файл.
Код

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output  method="html" version="4.0" encoding="UTF-16" />
<xsl:template  match="/">
  <script language="JavaScript">
  <xsl:text disable-output-escaping="yes">
  </xsl:text>
  </script>        
<xsl:apply-templates/>
</xsl:template>
        
<xsl:template match="folder">
  <table border="0" width="100%" cellpadding="1" cellspacing="0">
  <tr style='cursor:default'  onClick="ToggleDisplay(cls{@id},img{@id})" id="up{@id}"  onmouseover="this.style.cursor='hand'; this.style.background='#F0F3FE';" onmouseout="this.style.cursor='hand'; this.style.background='#FFFFFF';" valign="top">
  <td style="border-width:0">
    <xsl:value-of  disable-output-escaping="yes" select="concat( '&lt;img border=&quot;0&quot; name=&quot;img',@id,'&quot; src=&quot;../images/plus.gif&quot; align=&quot;absmiddle&quot; width=&quot;11&quot;&gt;&lt;/img&gt; ')"/>
  </td>
  <td style="border-width:0">
    <xsl:value-of  disable-output-escaping="yes" select="concat( '&lt;img border=&quot;0&quot; name=&quot;img',@id,'f&quot; src=&quot;../images/mis_task_folder.gif&quot; align=&quot;absmiddle&quot; &gt;&lt;/img&gt; ')"/>
  </td>
  <td style="border-width:0" width="100%">
    <xsl:value-of  disable-output-escaping="yes" select="concat( '&lt;b&gt;&lt;a id=&quot;',@id,'&quot; name=&quot;',@name ,'&quot; onclick=&quot;clickIt(this)&quot;  target=&quot;repdet&quot;   href=&quot;cgi.exe?function=db_gocbrep&amp;action=2&amp;rep=',@id,'&quot;  style=&quot;font-size:11px&quot; &gt;',child::title,'&lt;/a&gt;&lt;/b&gt;')"/>
  </td>
  </tr>
  <tr style="DISPLAY:none"  id="cls{@id}">
  <td style="border-width:0"></td>
  <td style="border-width:0" colspan="2"><xsl:apply-templates/>    </td>
  </tr>
</table>
</xsl:template>
<xsl:template match="report">    
  <div  onmouseover="this.style.cursor='hand'; this.style.background='#F0F3FE';" onmouseout="this.style.cursor='hand'; this.style.background='#FFFFFF';">
  <xsl:value-of  disable-output-escaping="yes" select="concat( '&lt;table border=&quot;0&quot;cellspacing=&quot;1&quot; cellpadding=&quot;0&quot;&gt;&lt;tr valign=&quot;top&quot; id=&quot;@id&quot;&gt;&lt;td style=&quot;border-width:0&quot;&gt;&lt;img src=&quot;../images/transp.gif&quot; border=&quot;0&quot; width=&quot;14&quot;/&gt;&lt;/td&gt;&lt;td style=&quot;border-width:0&quot;&gt;&lt;img name=&quot;img',@id,'t&quot; border=&quot;0&quot; align=&quot;absmiddle&quot; src=&quot;../images/tree_report.gif&quot;/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td  style=&quot;border-width:0&quot; width=&quot;100%&quot;&gt;&lt;a id=&quot;',@name,'&quot; name=&quot;',@id,'&quot; onclick=&quot;clickIt(this)&quot;  target=&quot;repdet&quot; href=&quot;cgi.exe?function=db_gocbrep&amp;action=1&amp;rep=',@id,'&quot; style=&quot;font-size:11px&quot;&gt;',child::title,'&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td/&gt;&lt;td/&gt;&lt;td bgcolor=&quot;#DDDDDD&quot; style=&quot;border-width:0&quot;&gt;&lt;img src=&quot;../images/transp.gif&quot; width=&quot;1&quot; height=&quot;1&quot; border=&quot;0&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;')"/>
  </div>
</xsl:template>
<xsl:template match="title">        
</xsl:template>
<xsl:template match="comment">        
</xsl:template>
<xsl:template match="run_method"/>
</xsl:stylesheet>



Проблемы с тегом/узлом "folder".

Вот входной xml-файл

Код

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

<report_tree>
    <folder id="20298" name="REPNODE298">
        <title>Сервиса</title>
        <report id="336369165" name="BILLSUM">
            <title>Результаты биллинга</title>
        </report>
        <report id="596019487" name="DEALAPPS">
            <title>Приложения обслуживания по дилерам</title>
        </report>
        <report id="764480048" name="REJ_REP">
            <title>Клиенты в исключении</title>
        </report>
        <report id="767288890" name="SERVHEND">
            <title>Услуги с ценами, отличными от тарифа</title>
        </report>
        <report id="767632457" name="AB_INFO">
            <title>Сводная информация об абоненте/абонентском номере</title>
        </report>
        <report id="933834031" name="APN">
            <title>Отчет о параметрах APN</title>
        </report>
        <report id="1070970211" name="NOTES">
            <title>Замечания</title>
        </report>
        <folder id="1353319363" name="DEMO">
            <title>Папка для роликов</title>
        </folder>
        <report id="1608999811" name="DBTCOM">
            <title>Протокол работы по лицевому счету.</title>
        </report>
        <report id="1901962463" name="VOICEINF">
            <title>Статистика по заявкам</title>
        </report>
        <report id="2129130168" name="PROG_SIM">
            <title>Соответствие абонентских номеров SIM-картам</title>
        </report>
    </folder>
    <folder id="20299" name="REPNODE299">
        <title>Система сервиса</title>
        <reportcboss id="51710" name="VMNHOUR">
            <title>* Ср. кол-во обращений к АССА за сутки</title>
        </reportcboss>
        <report id="954872821" name="VMNMENU">
            <title>Статистика по типам обращений</title>
        </report>
    </folder>
    <folder id="20300" name="REPNODE300">
        <title>Отчеты ЦОД</title>
        <reportcboss id="53216" name="RO_STAT2">
            <title>Исходящая телефония с разбивкой по зонам</title>
        </reportcboss>
        <report id="1967897479" name="ROAM_OWN">
            <title>Отчет по обмену файлами</title>
        </report>
    </folder>
</report_tree>


Пробовал изменять кодировки, но толку нету, тем более странно, что на локальном все нормально, а на тестовом - нет.
Входной xml-файл имеет коидровку "utf-8", 
XSL-файл имеет кодировку "windows-1251", выходной его данные в формате "UTF-16", а сама страница имеет charset = "windows-1251".

Что более того странно, что "Папка для роликов отображается нормально  smile  И простые узлы тоже.

Вот изображение на тестовом сервере в браузере
user posted image

Изображение на локальном сервере в браузере
user posted image

Это сообщение отредактировал(а) ICEMAN3141592 - 17.1.2012, 09:01
PM MAIL   Вверх
ICEMAN3141592
Дата 17.1.2012, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Народ, ну хотя бы гипотезы  smile 
А то уже 25 просмотров и ниодной версии
PM MAIL   Вверх
magelan
Дата 17.1.2012, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


потерял xPath
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 5.4.2010

Репутация: 7
Всего: 16



утф-16 вам зачем? умышленно зарезаете возможность использовать ajax?
почти у всех парсеров проблемы c шестнадцатой, для начала поставте утф-8.
и вообще разберитесь с вашим "зоопарком" кодировок, давно пора все в утф-8 и забыть о проблемах с кривыми значками.
PM MAIL   Вверх
ICEMAN3141592
Дата 18.1.2012, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Исправил все на windows-1251, проблема осталась, как в принципе я и ожидал, т.к. если бы проблема, возможно, была в кодировке, то на локальной машине проблема была та же, но как видно, ее на лок. машине нету.
PM MAIL   Вверх
diadiavova
Дата 18.1.2012, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



Цитата(ICEMAN3141592 @  18.1.2012,  13:02 Найти цитируемый пост)
Исправил все на windows-1251, проблема осталась, как в принципе я и ожидал, т.к. если бы проблема, возможно, была в кодировке, то на локальной машине проблема была та же, но как видно, ее на лок. машине нету. 

А что именно ты исправил? Одно дело, если исправлена кодировка, указанная в документе, и совсем другое - кодировка, с которой документ сохраняется. Ну и сервер может в заголовках указывать совсем другую кодировку, так что тут видимо информации для диагностики проблемы недостаточно.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
ICEMAN3141592
Дата 19.1.2012, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Цитата(diadiavova @  18.1.2012,  14:18 Найти цитируемый пост)
Одно дело, если исправлена кодировка, указанная в документе, и совсем другое - кодировка, с которой документ сохраняется.


xsl - файл перевел в windows-1251 в Notepad++ (а encoding в windows-1251 там уже стоит), и вместо UTF-16 поставил windows-1251, в котором отображается страница в браузере.

Цитата(diadiavova @  18.1.2012,  14:18 Найти цитируемый пост)
Ну и сервер может в заголовках указывать совсем другую кодировку, так что тут видимо информации для диагностики проблемы недостаточно. 

Я тоже об этом думал, но код один и тот же, я изменил на локальном, сразу же код перенес на тестовый. Причем когда я перевел все файлы в windows-1251, на локальном ничего не изменилось, как отображал так и отображает, на тестовом все также...как не отображает, так и не отображает.

Может быть это с настройками тестового компьютера ?
Самое интересное, что как видно из скриншота, "Папка для роликов" отображается нормально, просто магия.
PM MAIL   Вверх
diadiavova
Дата 19.1.2012, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



ICEMAN3141592, вообще, меня несколько смущает, что ты формируешь элементы не обычным для хсл способом(то есть непосредственной вставкой в документ выходных элементов), а делаешь это при помощи элемента value-of и конкатенации строки. Скорей всего проблема кроется где-то в этих местах, иногда разные процессоры могут обрабатывать документы по разному и если серверное по отличается от того, на котором все это дело тестировалось, то оно может эти вещи как-то иначе обрабатывать. Не очень понятно для чего вообще был такой способ выбран.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
ICEMAN3141592
Дата 24.1.2012, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Цитата(diadiavova @  19.1.2012,  21:24 Найти цитируемый пост)
меня несколько смущает, что ты формируешь элементы не обычным для хсл способом(то есть непосредственной вставкой в документ выходных элементов), а делаешь это при помощи элемента value-of и конкатенации строки. 

Извините, мой опыт с xslt очень скуп, Вы не могли показать, как правильно писать в xslt данный пример ?
PM MAIL   Вверх
diadiavova
Дата 24.1.2012, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142



ICEMAN3141592, ну я все не буду делать( само собой), но на одном примере покажу. Вот возьмем одну строчку такого вида(22 строка кода в твоем примере).
Код

    <xsl:value-of  
        disable-output-escaping="yes" 
        select="concat( 
                    '&lt;b&gt;&lt;a id=&quot;',
                    @id,
                    '&quot; name=&quot;'
                    ,@name, 
                    '&quot; onclick=&quot;clickIt(this)&quot;  target=&quot;repdet&quot;   href=&quot;cgi.exe?function=db_gocbrep&amp;action=2&amp;rep=',
                    @id,
                    '&quot;  style=&quot;font-size:11px&quot; &gt;',
                    child::title,
                    '&lt;/a&gt;&lt;/b&gt;')"/>

Вместо этого должно быть примерно следующее
Код

<b>
  <a style="font-size: 11px" 
       id="{@id}" 
       name="{@name}" 
       onclick="clickIt(this)" 
       target="repdet" 
       href="{concat('cgi.exe?function=db_gocbrep&amp;action=2&amp;rep=' , @id)}">
    <xsl:value-of select="title" />
  </a>
</b>



Это сообщение отредактировал(а) diadiavova - 24.1.2012, 14:04


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
ICEMAN3141592
Дата 24.1.2012, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Ага, т.е. для остальных 3ех случаев сделать тоже самое ?
PM MAIL   Вверх
ICEMAN3141592
Дата 24.1.2012, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 29.12.2009

Репутация: нет
Всего: нет



Цитата(irinazanuda @  24.1.2012,  16:41 Найти цитируемый пост)
ну я все не буду делать( само собой

О, спасибо. Не увидел. Прочитал между строк smile

diadiavova, и правда, огромное спасибо ! 
 smile smile smile smile smile smile smile smile smile smile smile smile smile smile smile smile smile smile 

Мне просто 1 задача стоит, вроде все работает на локальном, а тестовый выделывается. Думал, что ради одной, по идеи, мелочной задачи прошариваться по-крупному в xslt не решился, все-таки есть же профи в этом деле smile
Не лентяй, просто хрень какая-то творится между разными машинами с одним и тем же кодом.

P.S. irinazanuda, а вы не жена diadiavova ? А то слышится, какой - то странный звук пилы...

Это сообщение отредактировал(а) ICEMAN3141592 - 24.1.2012, 17:38
PM MAIL   Вверх
diadiavova
Дата 24.1.2012, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 22
Всего: 142




 ! 
diadiavova
irinazanuda, здесь не флейм и не песочница и за флуд очень даже запросто можешь получить читательский билет. Чтоб это было в последний раз, а то ты меня знаешь.

Цитата(ICEMAN3141592 @  24.1.2012,  17:39 Найти цитируемый пост)
Ага, т.е. для остальных 3ех случаев сделать тоже самое ? 

 smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

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

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1216 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.