检索有关特定标记的XML文档的内容

时间:2015-02-02 11:55:16

标签: xml xslt

首先抱歉可能是不准确的标题!

检索或提取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做到这一点?

谢谢,

1 个答案:

答案 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>&#10;</xsl:text>
        </xsl:for-each>
    </xsl:template>