Xslt 使用XSL仅保留RSS的第一段<;说明>;领域

Xslt 使用XSL仅保留RSS的第一段<;说明>;领域,xslt,xhtml,rss,Xslt,Xhtml,Rss,我正在努力解决这个问题 我希望使用XSL只保留描述字段的第一段。我读过关于如何只针对XML结构的某些子项的内容,但我认为,由于RSS提要中的段落标记添加为<和>,因此在执行类似操作时,它们似乎不起作用: <xsl:value-of select="description/p[position() = 1]" disable-output-escaping="yes"/> 理想情况下,我只想选择段落标记之间的文本,并完全丢弃它们 任何帮助都将不胜感激。使用此转换: <

我正在努力解决这个问题

我希望使用XSL只保留描述字段的第一段。我读过关于如何只针对XML结构的某些子项的内容,但我认为,由于RSS提要中的段落标记添加为<和>,因此在执行类似操作时,它们似乎不起作用:

<xsl:value-of select="description/p[position() = 1]" disable-output-escaping="yes"/>

理想情况下,我只想选择段落标记之间的文本,并完全丢弃它们


任何帮助都将不胜感激。

使用此转换:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes"/>

 <xsl:template match="/*/channel/item/description">
  <xsl:value-of select=
  "substring-before(substring-after(., '&lt;P&gt;'), '&lt;/P&gt;')
  "/>
  <xsl:text>&#xA;</xsl:text>
 </xsl:template>
</xsl:stylesheet>

使用此转换:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes"/>

 <xsl:template match="/*/channel/item/description">
  <xsl:value-of select=
  "substring-before(substring-after(., '&lt;P&gt;'), '&lt;/P&gt;')
  "/>
  <xsl:text>&#xA;</xsl:text>
 </xsl:template>
</xsl:stylesheet>

Perfect!-谢谢你,迪米特。我没有考虑过像那样对子串函数进行加倍。太好了谢谢你,迪米特。我没有考虑过像那样对子串函数进行加倍。