我的 XSLT 语言不好 - 所以任何帮助将不胜感激!我正在尝试从下面的 XML 文件 (file.xml) 中选择评论,该评论的描述数量少于 100 个单词,如果缺少描述,则根本不要选择它(您会注意到第二项)在 xml 中缺少描述)
我搞乱了xsl:choose和xsl/when但似乎仍然无法正常工作。
使用 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>
我的最终输出应该是这样的。
万千封印