2011-02-26 58 views
0

我有這樣的XML:創建HTML無序列表

<Tekstside id="1081" level="3" nodeName="Test" urlName="test"> 
    <umbracoRedirect /> 
    <overskrift>Test</overskrift> 
    <tekst></tekst> 
    <sidensTitel /> 
    <sidensBeskrivelse /> 
    <sidensNgleord /> 
- <Faktaboks id="1113" level="4" nodeName="Det her virker" urlName="det-her-virker"> 
    <umbracoNaviHide>1</umbracoNaviHide> 
- <fordele> 
- <values> 
    <value>Ingen emission</value> 
    <value>Det virker bare</value> 
    <value>Det er top nice</value> 
    <value>Det er bare fedt</value> 
    <value>Udstødnings</value> 
    <value /> 
    </values> 
    </fordele> 
- <ulemper> 
- <values> 
    <value>Giver sygdom</value> 
    <value>Er farligt</value> 
    <value /> 
    </values> 
    </ulemper> 
    </Faktaboks> 
    </Tekstside> 

我希望 「fordele」 的價值觀和 「ulemper」 的一把umbraco做成unorderes列表和XSLT值:

<div class="fanda"> 
    <ul class="for"> 
     <li>Købsprisen</li> 
    </ul> 
    <ul class="against"> 
     <li>Kortere servicerings interval pga. additivet fylder med i filteret.</li> 
     <li>Der kan forekomme meget varieret modtryk, isærpå biler med lav - udstødningstemperatur.</li> 
     <li>Udgifter til Additiv - typisk fra 400 - 600 kr. pr. liter.</li> 
     <li>Kan ikke klare alle kørselsmønstre</li> 
    </ul> 
    </div> 

我試着用這個XSLT:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ 
    <!ENTITY nbsp "&#x00A0;"> 
]> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" 
    xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" 
    xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" 
    xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets"> 

    <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:param name="currentPage"/> 

<xsl:template match="/"> 
    <ul> 
     <xsl:apply-templates select="$currentPage/*[@isDoc]" /> 
    </ul> 
</xsl:template> 

<xsl:template match="fordele"> 
    <li> 
      <xsl:value-of select="fordele" /> 
    </li> 
</xsl:template> 

<xsl:template match="*[umbracoNaviHide = 0]" /> 

</xsl:stylesheet>​ 

但它不工作..

+0

那麼,什麼是th問題?我沒看到一個。 – 2011-02-26 15:45:16

+0

我需要XSLT將它從XML轉換爲HTML :)。 – Daniel 2011-02-26 15:48:33

+1

這是一個聲明 - 不是一個問題。 – 2011-02-26 15:53:05

回答

4

這種變換:

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

<xsl:template match="fordele|ulemper"> 
    <ul> 
    <xsl:apply-templates/> 
    </ul> 
</xsl:template> 

<xsl:template match="value[normalize-space()]"> 
    <li><xsl:value-of select="."/></li> 
</xsl:template> 

<xsl:template match="text()"/> 
</xsl:stylesheet> 

當所提供的XML文檔施加(校正以除去 ' - ' 字符):

<Tekstside id="1081" level="3" nodeName="Test" urlName="test"> 
    <umbracoRedirect /> 
    <overskrift>Test</overskrift> 
    <tekst></tekst> 
    <sidensTitel /> 
    <sidensBeskrivelse /> 
    <sidensNgleord /> 
    <Faktaboks id="1113" level="4" nodeName="Det her virker" urlName="det-her-virker"> 
     <umbracoNaviHide>1</umbracoNaviHide> - 
     <fordele> 
      <values> 
       <value>Ingen emission</value> 
       <value>Det virker bare</value> 
       <value>Det er top nice</value> 
       <value>Det er bare fedt</value> 
       <value>Udstødnings</value> 
       <value /> 
      </values> 
     </fordele> 
     <ulemper> 
      <values> 
       <value>Giver sygdom</value> 
       <value>Er farligt</value> 
       <value /> 
      </values> 
     </ulemper> 
    </Faktaboks> 
</Tekstside> 

產生想要的,正確的結果:

<ul> 
    <li>Ingen emission</li> 
    <li>Det virker bare</li> 
    <li>Det er top nice</li> 
    <li>Det er bare fedt</li> 
    <li>Udstødnings</li> 
</ul> 
<ul> 
    <li>Giver sygdom</li> 
    <li>Er farligt</li> 
</ul> 
+0

+1以獲得正確的解決方案。 – Flack 2011-02-26 22:08:26

+0

+1正確答案 – 2011-02-28 16:52:08