Написать HTML из XSLT - PullRequest
       0

Написать HTML из XSLT

1 голос
/ 22 июля 2010

Возьмите приведенный ниже xml

<?xml version="1.0"?>
<?xml-stylesheet href="desktop.xsl" type="text/xsl"?>
<desktop>
  <tag name="h1" caption="hello"/>
</desktop>

У меня есть XSLT, который возьмет атрибут name элемента tag и создаст соответствующий HTML-элемент

Фрагмент из xsl

<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes"/> 

   <xsl:template match="tag">
    <{@name}>{@caption}</{@name}>
  </xsl:template>
</xsl:stylesheet>

что, конечно, не работает, из-за символов <> (я полагаю)

Как я могу обойти это?

Спасибо

Ответы [ 2 ]

3 голосов
/ 22 июля 2010

Вам нужно будет использовать <xsl:element>.См. здесь .

Например:

<xsl:element name="@name"><xsl:value-of select="@caption"></xsl:element>
0 голосов
/ 22 июля 2010

Вместо этого используйте <xsl:element>, что создаст новый узел.Например, я однажды использовал следующий код для создания автоматически вложенных заголовков в HTML:

<xsl:variable name="extlevel" select="count(ancestor::External[not(@link)])"/>   
<xsl:element name="h{$extlevel + 2}"><xsl:value-of select="@name"/></xsl:element>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...