2013-07-08 1 views
1
год

У меня есть таблица со строками, которые содержат даты формы MM/DD/YYYY, такие какXPath выражение для соответствия MM/DD/дата YYYY строк в месяц и

<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

Я хочу совпадать с соответствующей строкой с данными month и year. Гарантируется, что в месяц будет не более одной записи, поэтому не стоит учитывать day. Если в какой-то момент необходим день, то выражение тривиально, так как я буду иметь все три части информации.

Я использую xpath 1.0, поэтому мне не кажется, что у меня есть доступ к регулярному выражению в моих выражениях. Что такое надежный способ получить соответствующую строку, учитывая только месяц и год? Например, если мне нужна строка, соответствующая июню 2013 года, я не хочу случайно совпадать на 05/06/2013.

ответ

1

Я искал функции xpath и обнаружил, что существует функция starts-with. Поэтому решение, предполагая, что я ищу в июне 2013 года, будет

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

Это позволит избежать проблем с днем ​​/ месяц двусмысленности, поскольку даты всегда MM/DD/YYYY

+0

Даже лучше, '// тр [ ./td [start-with (., '06/') и содержит (.,'/2013 ')]] '. –

+0

Согласен, более конкретный, вероятно, не повредит в этом случае. – MxyL