使用regex+查找字符串中的数字;xslt

使用regex+查找字符串中的数字;xslt,regex,xslt,numbers,reddit,Regex,Xslt,Numbers,Reddit,我正在尝试从以下XML代码的描述中提取大量注释: <item> <title>War Stats</title> <link>http://www.reddit.com/r/politics/comments/r3p6r/war_stats/</link> <guid isPermaLink="true">http://www.reddit.com/r/politics

我正在尝试从以下XML代码的描述中提取大量注释:

    <item>
        <title>War Stats</title>
        <link>http://www.reddit.com/r/politics/comments/r3p6r/war_stats/</link>
        <guid isPermaLink="true">http://www.reddit.com/r/politics/comments/r3p6r/war_stats/</guid>
        <pubDate>Mon, 19 Mar 2012 10:30:01 -0700</pubDate>
        <description>submitted by &lt;a href="http://www.reddit.com/user/focusing"&gt; focusing &lt;/a&gt; to &lt;a href="http://www.reddit.com/r/politics/"&gt; politics&lt;/a&gt; &lt;br/&gt; &lt;a href="http://i.imgur.com/8HpWg.jpg"&gt;[link]&lt;/a&gt; &lt;a href="http://www.reddit.com/r/politics/comments/r3p6r/war_stats/"&gt;[634 comments]&lt;/a&gt;</description>
    </item>

战争统计
http://www.reddit.com/r/politics/comments/r3p6r/war_stats/
http://www.reddit.com/r/politics/comments/r3p6r/war_stats/
2012年3月19日星期一10:30:01-0700
由a href=”提交http://www.reddit.com/user/focusing“聚焦/a到a href=”http://www.reddit.com/r/politics/“政治/a br/a href=”http://i.imgur.com/8HpWg.jpg“[链接]/a href=”http://www.reddit.com/r/politics/comments/r3p6r/war_stats/“[634条评论]/a
如您所见,我想从中提取数字634,并将其放入新xml文件的“score”属性中

<xsl:attribute name="score">
    <xsl:analyze-string select='description' regex='\d'>
        <xsl:matching-substring>
            <number><xsl:value-of select='.' /></number>
        </xsl:matching-substring>
    </xsl:analyze-string>

</xsl:attribute>

但我认为我做错了

这是全部代码:


雷迪特
http://dl.dropbox.com/u/8226356/Unief/DatabasesWebtechnologie/Praktijk/Project/Reddit_logo.thumbnail.png

有人能告诉我怎么做吗?

正则表达式
\d
匹配一个单位数字符,我想您需要
\d+
[0-9]+
匹配一个数字序列。 而且,
xsl:attribute
输出一个属性节点,我不明白为什么在这里面你会想要创建一个带有
的元素节点,因为属性不能包含元素。
因此,请确保在结果元素或
xsl:element
内部使用
xsl:attribute
,然后对于属性值,只需使用
,代码就可以工作了。如果您仍然有问题,请更详细地解释您想要什么输出。

我正在尝试使用新的xml布局将reddit top文章解析为项目。扔掉
,这在您似乎想要计算属性值(分数
时没有任何意义。仍然不起作用,虽然我不知道正则表达式代码实际上是做什么的:S
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:a="http://www.w3.org/2005/Atom"
xmlns:media='http://search.yahoo.com/mrss/'>


<xsl:template match="/">

<xsl:for-each select="/rss/channel/item">
<item>
    <xsl:attribute name="type">reddit</xsl:attribute>
    <xsl:variable name="redditTitle" content="title" />
    <xsl:attribute name="name">
        <xsl:if test="string-length(title) &gt; 50">
            <xsl:value-of select="concat(substring(title, 1, 75), '...')" />    
        </xsl:if>
        <xsl:if test="string-length(title) &lt; 50">
            <xsl:value-of select="title" />
        </xsl:if>
    </xsl:attribute>

    <xsl:attribute name="url">
        <xsl:value-of select="link" />
    </xsl:attribute>

    <xsl:attribute name="image">http://dl.dropbox.com/u/8226356/Unief/DatabasesWebtechnologie/Praktijk/Project/Reddit_logo.thumbnail.png</xsl:attribute>

    <xsl:attribute name="score">
        <xsl:analyze-string select='description' regex='[0-9]+'>
            <xsl:matching-substring>
                <xsl:value-of select='.' />
            </xsl:matching-substring>
        </xsl:analyze-string>

    </xsl:attribute>
</item>
</xsl:for-each>

</xsl:template>

</xsl:stylesheet>