2012-09-18 249 views
1

我可以通过使用xpath知道如何从下面的一段html中提取2,34?为此我使用htmlceaner,我认为我不能使用normalize-space()并注意我应该使用标记值,否则会有很多返回的值。另外,xyz值在它周围有很多空格。为了说明,我省略了其余的html。从xml中提取信息

<tr><td colspan="2"> <strong> XYZ </strong> </td><td align="right"> <strong> 2,34&nbsp; </strong> </td>

感谢

回答

0

使用

substring-before(/*/td[2]/strong, '&#xA0;') 

XSLT - 基于验证

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

<xsl:template match="/"> 
    <xsl:value-of select="substring-before(/*/td[2]/strong, '&#xA0;')"/> 
</xsl:template> 
</xsl:stylesheet> 

当所提供的XML文档应用该变换(校正为进行良好的形成):

<tr> 
    <td colspan="2"> 
     <strong> XYZ </strong> 
    </td> 
    <td align="right"> 
     <strong> 2,34&#xA0;; </strong> 
    </td> 
</tr> 

中的XPath表达式,并将该评价的结果被复制到输出:

2,34