2015-10-14 86 views
0

我有一个解决方案,其中的文件名有一个前缀显示PDF的文件大小。我需要将这个值提取到一个XML文件中,该文件包含许多使用XSLT收集的其他信息。正则表达式搜索XSL,匹配后选择字符串

我怎么能不能只得到这个正则表达式匹配工作。 文件名具有此结构作为此示例: 776524_P9466_Novilon_Broschyr_SE_Omslag.xml其中下划线之前的数字是文件大小。

我有_(。*)的正则表达式搜索模式,我可以验证它将匹配数字的第一部分后的所有内容。

这里是我的XSL是我有问题:

<xsl:param name="find_size"> 
    <xsl:text>(_.*)</xsl:text> 
</xsl:param> 
<xsl:variable name="filename_of_start"><xsl:value-of select="replace($filename_of_file, '$find_size', '')"/></xsl:variable> 
    <artwork_size><xsl:value-of select="$filename_of_start"/></artwork_size> 

$ filename_of_file有串:776524_P9466_Novilon_Broschyr_SE_Omslag.xml

我也曾尝试下划线之前的数字匹配和取代那场比赛,但没有得到那个工作。其他替换,我从字符串的开头删除其他匹配项。

感谢

+0

你试过'^(。+?)_'还是'^([^ _] +)? –

回答

2

如何使用串 - 前()XPath函数?

<xsl:variable name="file_size" select="substring-before($filename, '_')" /> 
0

相反的replace($filename_of_file, '$find_size', '')你想replace($filename_of_file, $find_size, '')

+0

谢谢,你有时会失明... –

相关问题