开发者

Creating HTML unordered lists from XML data

开发者 https://www.devze.com 2023-02-13 09:40 出处:网络
I have this XML: <Tekstside id=\"1081\" level=\"3\" nodeName=\"Test\" urlName=\"test\"> <umbracoRedirect />

I have this 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>

I want the "fordele" values and the "ulemper" values made into the unorderes lists with XSLT in Umbraco:

<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>

I tried with this 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]"开发者_如何学Python />
    </ul>
</xsl:template>

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

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

</xsl:stylesheet>​

But it doesnt work..


This transformation:

<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>

when applied on the provided XML document (corrected to remove the '-' characters):

<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>

produces the wanted, correct result:

<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

精彩评论

暂无评论...
验证码 换一张
取 消