2013-07-08 107 views
1

匹配MM/DD/YYYY日期字符串我有包含形式MM/DD/YYYYXPath表达式对年份和月份

<table> 
    <tr><td>02/05/2013</td></tr> 
    <tr><td>03/01/2013</td></tr> 
    <tr><td>04/25/2013</td></tr> 
    <tr><td>05/06/2013</td></tr> 
    <tr><td>06/06/2013</td></tr> 
</table> 

我有两条信息一起工作的日期行的表:

  • MM
  • YYYY

我要匹配相应的行与给定monthyear值。这是保证将有每月最多只有一个入口,因此要考虑day并不重要。如果在某个时间点需要一天,那么表达很微不足道,因为我将拥有所有三条信息。

我使用XPath 1.0所以它似乎并不像我有机会在我的表达式正则表达式。只有月份和年份,获得适当的行的可靠方法是什么?例如,如果我想对应于2013年6月该行,我不希望意外匹配05/06/2013

回答

1

我抬头XPath函数,发现有一个starts-with功能。 这样一个解决方案,假设我在寻找2013年6月,将

//tr[./td[starts-with(., '06') and contains(., '2013')]]

这将避免与日/月歧义问题,因为日期总是MM/DD/YYYY

+0

更妙的是,'// TR [ ./td [开始-与(。,'06 /')和含有(。, '/ 2013')]]'。 –

+0

我同意,更具体的可能不会在这种情况下伤害。 – MxyL