从 XML 数据创建 HTML 无序列表

发布于 2024-10-19 11:51:45 字数 2941 浏览 1 评论 0原文

我有这个 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>

我希望将“fordele”值和“ulemper”值放入 Umbraco 中的 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>​

但它不起作用..

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 " ">
]>
<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>​

But it doesnt work..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻风 2024-10-26 11:51:45

此转换:

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

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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文