tashkentchi
Новичок
Проблема с порядком обработки узлов
Есть XML-ка следующего вида:
В ней также могут быть и другие узлы, если соответствующие значения IS NOT NULL. Обрабатываем ее XSL-кой:
Работает неудовлетворительно, т.к. узел "категория" выводится последним, а должен быть первым. Явно прописать
не могу, так как перестанет работать конструкция
которая также необходима. Изменить XML-ку также не в моей воле. Так как с XSL пока не "на ты", то ломаю голову. Помогите, плиз.
Есть XML-ка следующего вида:
PHP:
<Данные_об_организации>
<название>Аптека "36,6"</название>
<режим_работы>
<рабочие_дни_время>8.00-20.00, без обеда и без выходных</рабочие_дни_время>
</режим_работы>
<фактический_адрес>Узбекистан, г.Ташкент, Мирзо-Улугбекский район, ул. Буюк Ипак Юли, 105/2</фактический_адрес>
<ориентиры>метро "Буюк Ипак Йули"</ориентиры>
<транспорт>авт. 24, 1, 101, 63</транспорт>
<телефоны>169-05-45, 68-15-09</телефоны>
<орг_правовая_форма>Общество с ограниченной ответственностью (ООО)</орг_правовая_форма>
<величина>микрофирма</величина>
<ИНН>204790538</ИНН>
<юридический_адрес>г. Ташкент, 700077 ул. Буюк Ипак Юли, 105/2</юридический_адрес>
<ОКОНХ>71212</ОКОНХ>
<счета>
<счет>
<номер>20208000804302736001</номер>
<банк>Мирзо-Улугбекский филиал НБ ВЭД</банк>
<МФО>00895</МФО>
</счет>
</счета>
<категория>Аптеки</категория>
</Данные_об_организации>
PHP:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="Данные_об_организации">
<table width="100%" border="0">
<xsl:apply-templates/>
</table>
</xsl:template>
<xsl:template match="картинка">
<tr><td colspan="2" align="center">
<img border="0" width="160" height="100"><xsl:attribute name="src">
<xsl:apply-templates/></xsl:attribute></img>
</td></tr><tr><td> </td></tr>
</xsl:template>
<xsl:template match="название">
<tr><td colspan="2" align="center" style="font-size:14px;color:#00439F;">
<b><xsl:apply-templates/></b></td></tr>
<tr><td> </td></tr>
</xsl:template>
<xsl:template match="дополнительная_информация">
<tr><td class="green" colspan="2"><xsl:apply-templates/></td></tr>
</xsl:template>
<xsl:template match="фактический_адрес">
<tr>
<xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">gridcolor</xsl:attribute>
</xsl:if>
<td class="green">Адрес</td>
<td class="green" width="60%"><b><xsl:apply-templates/></b></td></tr>
</xsl:template>
<xsl:template match="ориентиры">
<tr>
<xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">gridcolor</xsl:attribute>
</xsl:if>
<td class="green">Ориентиры</td>
<td class="green" width="60%"><b><xsl:apply-templates/></b></td></tr>
</xsl:template>
<!-- и т.д. и т.п. -->
PHP:
<xsl:apply-templates select="категория"/>
<xsl:apply-templates select="фактический_адрес"/>
<xsl:apply-templates select="ориентиры"/>
<!-- и т.д. -->
PHP:
<xsl:if test="position() mod 2 = 1">
<xsl:attribute name="class">gridcolor</xsl:attribute>
</xsl:if>