Есть ли какой-нибудь язык, который компилируется в xslt и упрощает его использование и поддержку? - PullRequest
5 голосов
/ 20 сентября 2011

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

Грубо говоря, я хочу coffeescript для xslt, что-то, что будет компилироваться, например

template test
  params = {:foo => 'foo', :bar => 1}
  <p>$foo, $bar</p>
end

call test :foo => 'oof', :bar => 2 

в

<xsl:call-template name="test">
    <xsl:with-param select="'oof'" name="foo"></xsl:with-param>
    <xsl:with-param select="2" name="bar"></xsl:with-param>
</xsl:call-template>

<xsl:template name="test">
  <xsl:param select="'foo'" name="foo" />
  <xsl:param select="1" name="bar" />
    <p><xsl:value-of select="$foo" />, <xsl:value-of select="$bar" /></p>
</xsl:template>

или что-то ...

1 Ответ

1 голос
/ 20 сентября 2011

Вы можете проверить XMLStarlet .

С его помощью можно создавать шаблоны XSL.

Например:

xml sel -C -t -c "xpath0" -m "xpath1" -m "xpath2" -v "xpath3" -t -m "xpath4" -c "xpath5"

сгенерирует

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output omit-xml-declaration="yes" indent="no"/>
  <xsl:template match="/">
    <xsl:call-template name="t1"/>
    <xsl:call-template name="t2"/>
  </xsl:template>
  <xsl:template name="t1">
    <xsl:copy-of select="xpath0"/>
    <xsl:for-each select="xpath1">
      <xsl:for-each select="xpath2">
        <xsl:value-of select="xpath3"/>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:template>
  <xsl:template name="t2">
    <xsl:for-each select="xpath4">
      <xsl:copy-of select="xpath5"/>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...