第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

需要幫助使用 xsl:choose 和 xsl/when 選擇 XSLT

需要幫助使用 xsl:choose 和 xsl/when 選擇 XSLT

PHP
慕雪6442864 2023-07-15 16:46:38
我的 XSLT 語(yǔ)言不好 - 所以任何幫助將不勝感激!我正在嘗試從下面的 XML 文件 (file.xml) 中選擇評(píng)論,該評(píng)論的描述數(shù)量少于 100 個(gè)單詞,如果缺少描述,則根本不要選擇它(您會(huì)注意到第二項(xiàng))在 xml 中缺少描述)我搞亂了xsl:choose和xsl/when但似乎仍然無(wú)法正常工作。使用 PHP 加載 XML 文件$xmlFile = 'file.xml';                   $doc = new DOMDocument();$xsl = new XSLTProcessor();                    $doc->load($xslFile);$xsl->importStyleSheet($doc);                    $doc->load($xmlFile);echo $xsl->transformToXML($doc);這是我的 XML (file.xml):<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/">    <channel>        <title>Reviews</title>        <description>5 Star Reviews</description>        <link></link>        <item>            <title>Google review 4 stars - John</title>            <description>Lorem ipsum dolor sit amet, dico quaestio eu vis. Errem disputationi mel te, in civibus minimum qualisque vel. </description>        </item>        <item>            <title>Google review 5 stars - Sarah</title>            <description></description>        </item>        <item>            <title>Google review 5 stars - Jenny</title>            <description>I love this place! Lorem ipsum dolor sit amet, dico quaestio eu vis. Errem disputationi mel te, in civibus minimum qualisque vel. Et duo quando detracto tacimates, mediocrem instructior id pro. Nec id omnis aperiri iracundia,</description>        </item>    </channel></rss>XSLT 文件<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:output method="html" encoding="utf-8" indent="no"/><xsl:template match="/rss/channel">    <xsl:for-each select="item">        <li>        <p class="heading">            <xsl:value-of select="title"/>        </p>        <p class="text">            <xsl:value-of select="description"/>        </p>    </li>        </xsl:for-each></xsl:template></xsl:stylesheet>我的最終輸出應(yīng)該是這樣的。
查看完整描述

1 回答

?
萬(wàn)千封印

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊

我建議從選擇的謂詞開(kāi)始,item例如item[description[normalize-space()]]僅選擇具有超過(guò)空白內(nèi)容的子元素的item元素。description


至于字?jǐn)?shù)統(tǒng)計(jì),在 XPath 1.0 中表達(dá)起來(lái)比較困難。正如您似乎從 PHP 中執(zhí)行的那樣,請(qǐng)檢查 PHP 是否公開(kāi)了 libxslt 的 EXSLT 擴(kuò)展函數(shù),或者調(diào)用 PHP 來(lái)計(jì)算描述內(nèi)容中的單詞數(shù)。


要將 PHP 的str_word_count函數(shù)與 XSLTProcessor 一起使用,您可以使用


<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 

    xmlns:php="http://php.net/xsl"

    exclude-result-prefixes="php"

    version="1.0">

    

    <xsl:output method="html" encoding="utf-8" indent="yes"/>

    

    <xsl:template match="/rss/channel">

        <xsl:for-each select="item[description[normalize-space() and php:function('str_word_count', string()) &lt; 100]]">

            

            <li>

                <p class="heading">

                    <xsl:value-of select="title"/>

                </p>

                

                <p class="text">

                    <xsl:value-of select="description"/>

                </p>

            </li>

            

        </xsl:for-each>

    </xsl:template>

    

</xsl:stylesheet>

在你需要的 PHP 代碼中


$xsltProcessor = new XSLTProcessor();


$xsltProcessor->registerPHPFunctions();

我還認(rèn)為您最好創(chuàng)建兩個(gè)不同的 DOMDocument 對(duì)象,一個(gè)用于 XML 輸入,另一個(gè)用于 XSLT 文檔。


查看完整回答
反對(duì) 回復(fù) 2023-07-15
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)