Советы по написанию xslt файла - PullRequest
0 голосов
/ 03 октября 2011

У меня есть XML-файл, такой как следующий.

<?xml-stylesheet type='text/xsl' href='AdditionalLogInfo.xsl'?>
<Logs>
  <Log TestName="EwireDepositTests" Date="Oct 3 11">
    <Item>
      <Message>Name: blabla</Message>
    </Item>
    <Item>
      <Message>Test Status: Failed</Message>
    </Item>
    <Item>
      <Message>
      </Message>
    </Item>
    <Item>
      <Message>[[Logs]]</Message>
    </Item>
    <Item>
      <Message>[ccpayment]</Message>
    </Item>
    <Item>
       <Exception>blabla couldn't be found in the database</Exception>
    </Item>
    <Item>
      <Message>
      </Message>
    </Item>
    <Item>
      <Message>[logging]</Message>
    </Item>
    <Item>
       <Exception>couldn't be found in the database</Exception>
    </Item>
  </Log>
</Logs>

Проблема, в которую я попал, - это написание файла xslt, чтобы я мог просматривать красивую HTML-страницу с красными линиями, если в журналах / журнале / элементе есть узел исключения, и зелеными линиями, если вместо этого есть узел сообщения.

1 Ответ

2 голосов
/ 03 октября 2011
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes"
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>

  <xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml">
      <body>
        <ul>
          <xsl:apply-templates select="//Item/*[normalize-space(.)]"/>
        </ul>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="Message">
    <li style="color:green" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:value-of select="."/>
    </li>
  </xsl:template>

  <xsl:template match="Exception">
    <li style="color:red" xmlns="http://www.w3.org/1999/xhtml">
      <xsl:value-of select="."/>
    </li>
  </xsl:template>

</xsl:stylesheet>

Выход:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...