1 回答
TA贡献1891条经验 获得超3个赞
我建议从选择的谓词开始,item例如item[description[normalize-space()]]仅选择具有超过空白内容的子元素的item元素。description
至于字数统计,在 XPath 1.0 中表达起来比较困难。正如您似乎从 PHP 中执行的那样,请检查 PHP 是否公开了 libxslt 的 EXSLT 扩展函数,或者调用 PHP 来计算描述内容中的单词数。
要将 PHP 的str_word_count函数与 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();
我还认为您最好创建两个不同的 DOMDocument 对象,一个用于 XML 输入,另一个用于 XSLT 文档。
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报