1 回答

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()) < 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 文檔。
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)