根据包含空格的文本选择HTML节点

时间:2014-07-30 07:23:51

标签: c# html xpath

我正在使用Xpath根据网页中的文本选择一个元素,只要文本选择器不包含空格,它就可以正常工作。

当选择器确实包含空格时,它会失败 我看过:Locating the node by value containing whitespaces using XPath
xpath expression to remove whitespace
how to get the normalize-space() xpath function to work? 但那没用。

失败的html示例:

<tr style="vertical-align:top;">
        <td style="height:15px;"></td>
        <td class="cs9D60B82">Yellow&nbsp;Fees</td>
        <td class="cs9D60B82">Group1</td>
        <td class="cs9D60B82">Yes</td>
        <td class="cs9DB0B82"></td>
        <td class="cs9D60B82">QD&nbsp;1,234.56</td>
</tr>

这些工作,但也可以返回启动相同文本的其他节点:

"//td[starts-with( normalize-space(), 'Yellow')]"  
"//td[starts-with(text(), 'Yellow')]"

这些不起作用:

 "//td[normalize-space(.) = 'Yellow Fees']"  
 "//td[translate(text(), '&#9;&#xA;&#xD;','') = 'YellowFees']"
 "//td[translate(text(), ' &#9;&#xA;&#xD;','') = 'Yellow&#xA0;Fees']"  
 "//td[translate(text(), '&nbsp;','') = 'YellowFees']"  
 "//td[translate(text(), '&#9;&#xA;&#xD;','') = 'Yellow&nbsp;Fees']"
 "//td[matches( text(), 'Yellow&nbsp;Fees')]"

1 个答案:

答案 0 :(得分:1)

我在https://groups.google.com/forum/#!topic/selenium-users/IJP6VKnnEeQ

找到答案
"//td[starts-with( normalize-space(), 'Yellow\u00A0Fees')]"  

作品!