Xpoint
   [напомнить пароль]

default'овый namespace в xsl

Метки: [без меток]
2009-03-12 23:24:03 [обр] Ex_Soft[досье]

Пространство имен по умолчанию нашел. Но теперь получается, 4 example:

<?xml version="1.0" encoding="windows-1251"?>
<?xml-stylesheet type="text/xsl" href="data_html.xsl"?>
<contract xmlns="http://localhost/contract" xmlns:othersperson="http://localhost/othersperson">
   <contragent>Иванов Иван Иванович</contragent>
   <date>2009.03.11</date>
   <no>13</no>
   <othersperson:othersperson>
      <othersperson:contragent>Ленин Владимир Ильич</othersperson:contragent>
      <othersperson:contragent>Сталин Иосиф Виссарионович</othersperson:contragent>
      <othersperson:contragent>Хрущев Никита Сергеевич</othersperson:contragent>
   </othersperson:othersperson>
</contract>

нужно каждый раз прописывать этот фиктивный namespace my

<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="http://localhost/contract" xmlns:othersperson="http://localhost/othersperson">
   <xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN" encoding="windows-1251" />
   <xsl:template match="/">
      <html>
         <head>
            <title><xsl:value-of select="//my:contragent"/></title>
         </head>
         <body>
            <p><strong><xsl:value-of select="//my:contragent"/></strong></p>
            <p><xsl:value-of select="//my:date"/></p>
            <p><xsl:value-of select="//my:no"/></p>
            <table>
               <caption>Others Person</caption>
               <thead>
                  <tr>
                     <th>Name</th>
                  </tr>
               </thead>
               <tbody>
                  <xsl:apply-templates select="my:contract/othersperson:othersperson" />
               </tbody>
            </table>
         </body>
      </html>
   </xsl:template>

   <xsl:template match="othersperson:othersperson">
      <tr>
         <td><xsl:value-of select="othersperson:contragent" /></td>
      </tr>
   </xsl:template>
</xsl:stylesheet>

Можно ли как-то облегчить себе жизнь, указав его где-то один раз в качестве default'ного, и чтобы он в дальнейшем подхватывался?

спустя 10 часов [обр] GRAy(64/259)[досье]
Ex_Soft[досье] Ну и разве указание xmlns="http://localhost/contract" вместо xmlns:my="http://localhost/contract" в XSL`е не спасёт отца русской демократии? Только будте готовы, что все html элементы у вас тоже станут вдруг из этого пространства имён.
спустя 1 час 55 минут [обр] Ex_Soft[досье]

GRAy?

разве указание xmlns="http://localhost/contract" вместо xmlns:my="http://localhost/contract" в XSL`е не спасёт отца русской демократии?

Не спасает. Мало того - здесь об этом и написано. Поэтому-то и появился этот топик.
GRAy?

будте готовы, что все html элементы у вас тоже станут вдруг из этого пространства имён.

Только вчера, когда рылся в поисках info по этому топику, в каком-то из FAQ'ов видел что-то а-ля: "Как из html удалить пространство имен". Не смотрел, но, так понял, что это - тоже решаемо. А в чем могут быть проблемы из-за этого? Ну добавилось? Ни что?

спустя 32 минуты [обр] GRAy(64/259)[досье]

Ex_Soft[досье] Да я вспомнил ;) про то что не спасает. Но по приведённой вами-же ссылке написано про xpath-default-namespace правда только если у вас не XSLT 2.0.

А в чем могут быть проблемы из-за этого? Ну добавилось? Ни что?

Если результат вам нужен просто как текст, то ничего страшного в этом namespace действительно нет. Если же вы захотите результат перенести в DOM страницы при помощи importNode - тут вы и словите проблемы, ведь с точки зрения браузера вы уже будете добавлять не html элементы, а какие-то другие. Надо об этом помнить.

спустя 1 час 17 минут [обр] Ex_Soft[досье]

GRAy[досье]

xpath-default-namespace
version="1.0"

Насчет namespace in html - понял. THNX.

спустя 4 минуты [обр] GRAy(64/259)[досье]
Ex_Soft[досье] Чё-то я сёдня туплю ;) сорри.
спустя 4 дня [обр] Ex_Soft[досье]
BTW, мо не совсем в кассу, но, так сказать, в дополнение: Убрать объявление пространства имён из результирующего XHTML
Powered by POEM™ Engine Copyright © 2002-2005