2012-03-23 2 views
-2

Это мой XML-код:Этот способ можно закодировать в XSLT

<define name="Procedure"> 
    <element name="Procedure" radlex:id="RID1559" radlex:match="Exact"> 
     <element name="View" radlex:id="RID10420" radlex:match="Exact"> 
      <optional> 
       <element name="Supine" radlex:id="RID10421" radlex:match="Exact" snomed:id="416733000"> 
        <empty/> 
       </element> 
      </optional> 
      <optional> 
       <element name="Upright" radlex:id="RID10455" radlex:match="Exact"> 
        <empty/> 
       </element> 
      </optional> 
      <text/> 
     </element> 
     <text/> 
    </element> 
</define> 

Я написал мой XSLT код, как это. Это правильный способ написать мой код? Правильно ли это использовать условие if в XSLT?

Можно ли кодировать это следующим образом:

Можно прочитать все теги (как element, optional, empty) с помощью for each цикла?

И если это не обязательно, то я хочу, чтобы он создал флажок в HTML; Я бы хотел, чтобы он сделал это для всех.

<xsl:template match="rng:define"> 
    <table> 

    <xsl:for-each select="rng:element[@name='Procedure']"> 
     <span style="color:blue;"> 
     <tr> 
      <td> 
     <xsl:text> Procedure </xsl:text> 
      </td> 
     </tr> 
     <xsl:if test="rng:element &gt; (rad:id='RID10420')"> 
      <tr> 
       <td> 
      <xsl:text> View </xsl:text> 
       </td> 
      </tr> 
      <tr> 
      <td> 
       <input type="text" name="View"></input> 
      </td> 
      </tr> 
     </xsl:if> 
     <xsl:if test="rng:element/rng:optional &gt; (rad:id='RID10421')"> 
      <tr> 
      <td> 
      <input text="Supine" name="cSupine" type="checkbox" class="checkbox" id="cSupine" value="checkbox"/> 
       <xsl:text> Supine </xsl:text> 
      </td> 
      </tr> 
     </xsl:if> 
     <xsl:if test="rng:element/rng:optional &gt; (rad:id='RID10455')"> 
      <tr> 
      <td> 
      <input text="Upright" name="cUpright" type="checkbox" class="checkbox" id="cUpright" value="checkbox"/> 
       <xsl:text> Upright </xsl:text> 
      </td> 
      </tr> 
     </xsl:if> 
     </span> 
    </xsl:for-each> 
    </table> 
    </xsl:template> 
+0

Я не понимаю, что именно вы хотите от нас :) – Lukasz

+1

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

+0

Рассматривали ли вы просто тестирование своего кода? – Marcin

ответ

2

Хороший способ понять, как «мы можем закодировать в XSLT», чтобы прочитать хорошую книгу по XSLT, прочитать любой хороший ответ в этом теге, практика немного ...

If вы хотите просто иметь впечатление о возможных стилях написания, также посмотрите на код библиотеки FXSL - вы получите ощущение одного конкретного стиля кодирования, который, я считаю, неплох.

Например, this code реализует общий парсер LR (1) с табличным управлением в чистом XSLT 2.0.

И this code вычисляет максимальный первичный фактор 600851475143 (чисто XSLT решение к хорошему проекту Эйлера проблемы).

Возможно, вам также будет интересно познакомиться с XPath, который является наиболее важной составной частью XSLT.

Here является чисто реализация XPath из двоичного дерева поиска типа данных.

И here это чистая реализация XPath из набор типа.

И наконец, here - это решение XPath для популярной проблемы FizzBuzz.

+0

@ Dimitre Novatchev Я хочу преобразовать вышеуказанный xml-код в html-код, используя xslt – user1283110

Смежные вопросы