首先抱歉可能是不准确的标题!
检索或提取XML文档的内容是一个常见问题,已在SO的其他帖子中得到解答。
对于所需算法的特定要求,我应该以类似表的格式准备输入,在该格式中不可能有具有多个数据项的单元格。简单来说,对于doc如下(这是完整文档的片段):
<Articles>
<article>
<author>Frank Manola</author>
<title>title1</title>
<journal>GTE</journal>
<month>December</month>
<year>1991</year>
</article>
<article>
<author>Frank Manola</author>
<author>Sandra Heiler</author>
<title>title2</title>
<journal>ASF</journal>
<month>August</month>
<year>1993</year>
</article>
</Articles>
所需的输出如下:
Frank Manola, title1, GTE, December, 1991
Frank Manola, title2, ASF, August, 1993
Sandra Heiler, title2, ASF, August, 1993
事实上,对于那些拥有多个作者(作者标签)的记录(有4个或更多个实例),每个应该在一个单独的行中检索。
如何使用XSLT做到这一点?
谢谢,
答案 0 :(得分:1)
下面的XSLT应该做你想做的事:
<xsl:output method="text" />
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="Articles">
<xsl:for-each select="article/author">
<xsl:value-of select="."/>, <xsl:value-of select="../title" />, <xsl:value-of select="../journal" />, <xsl:value-of select="../year" /><xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>