我有这个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>
我想在Umbraco中使用XSLT将“fordele”值和“ulemper”值放入unorderes列表中:
<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 " ">
]>
<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 :(得分: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>