Chase Your Dreams!

Christian Archer

  • Home
  • Profile
  • Friends
  • Forums
  • Gallery
  • Homepage
  • Copyright
Twitter Facebook RSS
Tag Archives: xslt

Psi Options –> Jabber Roster Utility (XSLT)

Posted on August 13, 2009 by SunChaser
7 Comments

Сервер с моим основным аккаунтом лёг. Видимо, наконец решил оправдать своё имя — unstable.nl

Соответственно встал вопрос о переносе контактов на новый сервер. Чем это можно сделать? Конечно же Jabber Roster Utility, чем же еще? Но! JRE сначала должен получить контакты со старого, а сервер-то лежит. Ростер, конечно же, скеширован клиентом, коим у меня является Psi. Но формат-то там неподходящий! Если перебивать ручками, то проще покажется добавить ручками же контакты прямо в клиенте. Не вариант.

Сначала в голову полезла шальная мысль написать парсер, но она была сразу отброшена. Psi хранит настройки в XML, a значит можно поступить проще.

Возьмем нужный нам файл настроек: %psidatadir%/profiles/%profilename%/accounts.xml и применим к нему xslt-стиль. Стиль этот очень прост:

<?xml version=”1.0″ encoding=”UTF-8″?>

<xsl:stylesheet version=”1.0″ xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns=”http://psi-im.org/options”>
<xsl:output method=”text”/>

<xsl:template match=”/accounts/accounts/*”>
Account <xsl:value-of select=”jid”/><xsl:apply-templates select=”roster-cache”/>
</xsl:template>

<xsl:template match=”roster-cache/*”>+,<xsl:value-of select=”jid”/>,<xsl:value-of select=”name”/>,none,<xsl:value-of select=”groups/item”/></xsl:template>

</xsl:stylesheet>

В результате мы получим ростеры всех прописанных туда аккаунтов в формате, который хавает JRE

Account jid@domain.tld
+,elem1@dom1.tld,Element 1,none,Group
+,elem2@dom2.tld,Element 2,none,Group
+,elem3@dom3.tld,Element 3,none,Group 2

Account jid2@domain2.tld
+,elem1@dom1.tld,Element 1,none,
+,elem4@dom4.tld,Element 2,none,

Вуаля, кормим JRE.

Как применить стиль?

Самый простой способ — браузер. Открываем accounts.xml (рекомендую сделать копию и издеваться над ней, а не резать по живому), вписываем первой строкой

<?xml-stylesheet type=”text/xsl” href=”accounts-xslt.xml”?>

копируем стиль в папку с этим accounts.xml и открываем accounts.xml в браузере.

Если не сработает, удаляем из accounts.xml строку <!DOCTYPE accounts> и элемент xmlns=”http://psi-im.org/options”

Знаю, что не по фэн-шую, но мне почему-то помогло.

Скачать стиль: http://misc.sunchaser.info/software/psi2jre.zip

  • Share this:
  • Email
  • ВКонтакте
Categories: Jabber, XML | Tags: jabber roster utility, psi, xslt

И коротко о XSLT и браузерах

Posted on July 16, 2009 by SunChaser
No Comments

Работает везде, кроме Arora (если точнее, виноват сам QtWebkit)

Ахда, в любых XML документах нельзя указывать DTD, иначе Internet Explorer пойдет по указанному адресу его скачать. Всё бы ничего, но он этим ddos-ит www.w3.org, поэтому там забанен. А значит, он просто вместо документа покажет ошибку

  • Share this:
  • Email
  • ВКонтакте
Categories: Web Development, XML | Tags: arora, internet explorer, xslt

XSLT и поисковики

Posted on July 16, 2009 by SunChaser
No Comments

Провел давно обещаное исследование о том как сайты на основе XSLT индексируются поисковиками.

Проверялось на примере avalon.com.ru

1) Google

Индексирует, игнорируя стили. Отчасти даже лучше — оформление не попадает в индекс и не мешается при поиске, но для полноты индексации надо делать sitemap.

2) Yahoo!

Применяет стиль и индексирует результат. Вах! То, что надо.

3) Yandex, Rambler, Aport, Microsoft Bing, Baidu

Никак. Стыд и позор!

Что ж… к сожалению, такой технически удачный подход к созданию сайтов слегка нежизнеспособен.

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

  • Share this:
  • Email
  • ВКонтакте
Categories: Web Development, XML | Tags: aport, bing, google, rambler, xslt, yahoo, yandex

XSLT and Web

Posted on January 3, 2009 by SunChaser
No Comments

XSLT (Extensible Stylesheet Language Transformations) — часть спецификации XSL, задающая язык преобразований XML-документов. Спецификация XSLT является рекомендацией W3C.[1]

Обычно XSLT в вебе используется для преобразования XML-документов в XHTML на стороне сервера. В результате получается обычная HTML-ка, которая передается в браузер. Это не интересно и никак не отражает некоторых прелестей XSLT-преобразования.

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

Выглядит, скажем, наша главная страница как

  1. <page title="Главная">
  2. <hello/>
  3. <search/>
  4. <newsblock>
  5. <news date="2009-01-02" link="/page1.xml">Новость</news>
  6. <news date="2009-01-12" link="/page2.xml">Еще новость</news>
  7. </newsblock>
  8. </page>

И уже в браузере формируется в приветствие, блок поиска и блок новостей и оборачивается в оформление сайта.

Такой подход используется, например на сайте starcraft2.com и сайте avalon.com.ru, над которым я время от времени и колдую.

Посмотрим на достоинства и недостатки:

Достоинтсва:

  1. Разделение данных и представления. Это типа хорошо и этого всегда добиваются
  2. Снижение нагрузки на сервер. Точнее, на вебовский фронт-энд, так как ему уже не надо по куче шаблонов формировать удобочитаемое представление
  3. Снижение трафика. Шаблоны достаточно скачать один раз и закешировать. Собственно, тот же эффект, что и от CSS

Недостатки:

  1. Требуется более высокое качество кода. Корявый HTML коряво отображается. Корявый XML не отображается вообще (на самом деле это достоинство, но моду диктуют “индусы” и другие быдлокодеры)
  2. Нагрузка на клиента. Современные браузеры на XSLT-страничках заметно подтормаживают, особенно, разумеется, Internet Explorer. Тонкий клиент как бы “толстеет”
  3. Browser Wars. Стоит просто у валидной XHTML-странички сменить тип с text/html на text/xml, сразу же всплывают какие-то странные несовместимости у браузеров. А, например, открытые реализации KHTML/WebKit (напр, Konqueror и Arora) вообще XSLT не понимают

Непонятки:

  1. Поисковики. Как поисковики относятся к XSLT? А хз. Требует дополнительного исследования

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

  • Share this:
  • Email
  • ВКонтакте
Categories: Web Development, XML | Tags: xslt
  • Blogroll

    • Блог android разработчика
  • FeedBurner

  • Calendar

    May 2012
    M T W T F S S
    « Apr    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031  
  • Archives

  • Categories

    • ? (1)
    • Bookmarks (15)
    • Culture (186)
      • Books (10)
      • Comics (1)
      • Holidays (1)
      • Law (3)
      • Linguistics (13)
      • Movies and TV (45)
      • Music (25)
      • Nippon (47)
        • Anime (43)
      • Politics (25)
      • Quotes (20)
      • Religion (3)
      • Science (15)
      • Video (16)
    • Development (38)
      • Design (4)
      • Qt (4)
      • Ruby (1)
      • Web Development (19)
    • Fun (75)
    • IT (218)
      • Cross-site Connectivity (11)
        • oEmbed (2)
        • OpenID (9)
      • Games (15)
      • Howtos (11)
      • Instant Messaging (38)
        • Jabber (26)
      • Internet Misc (37)
      • Linux (46)
      • Multimedia (3)
      • Phones (1)
      • Windows (21)
        • Linux Software in Windows (4)
      • WordPress (13)
      • XML (4)
    • Miscellaneous (43)
    • Personal (95)
      • Blog Flashmob (2)
      • Random Thoughts (25)
      • Secret Wishes (3)
      • Travel (3)
    • Pictures (20)
      • Gallery Updates (10)
      • Photography (3)
  • Recent Comments

    • SunChaser on DNS Service
    • Johan on DNS Service
    • SunChaser on DNS Service
    • SunChaser on DNS Service
    • SunChaser on DNS Service
  • Forum Topics

    • Jabber Server
  • SunChaser on Twitter

    • @interpager рано. туалет до сих пор не электронный :) 50 minutes ago
    • RT @smashingmag: We removed FB buttons and traffic from Facebook increased. Reason: instead of "liking" articles, readers share it on th ... 51 minutes ago
    • @tuarisa Путину 1 day ago
    • RT @xenia_sobchak: Якеменко публичноотказал мне во вступлении в его партию.как жить дальше?есть ли смысл?обьявляюУстричную голодовку по ... 1 day ago
    • @ilyabirmannet Most likely he uses some third party caching plugin 1 day ago
© 2006-2012 by Christian Archer Proudly Powered by WordPress | Nest Theme by YChong
loading Cancel
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.