2013-07-20 2 views
2

Я некоторые HTML я extraced в следующем формате:XPath Wildcard для чисел

<table id="post123"> 
    <div id="postname">Post Name</div> 
</table> 
<table id="post124"> 
    <div id="postname">Post Name 2</div> 
</table> 

Использование Xpath, я хотел бы получить только те элементы, которые имеют «пост» в них, а затем по номерам ,

Я думал использовать:

table[contains(@id, "post")] 

Но это также возвращает элемент с идентификатором «postname», который является не то, что я хочу. Как бы Вы это сделали? Есть ли шаблон в xpath для чисел?

Также отметим, что HTML может выглядеть следующим образом:

<table id="123post"> 
    <div id="namepost">Post Name</div> 
</table> 

ответ

2

Попробуйте использовать matches() вместо этого.

Что-то вроде:

matches(@id,'^post\d+$') 

Редактировать (в соответствии 123post или post123):

matches(@id,'^\d*post\d*$') 

Это будет также соответствовать id="post". Если это проблема, вы можете использовать:

matches(@id,'(^post\d+$|^\d+post$)') 
+0

Спасибо, это работает, но только если числа после букв. Каким будет регулярное выражение, если цифры перед буквами? И почему это не работает в regexpal? – jbkkd

+0

@jbkkd - Я обновил regext, чтобы соответствовать обоим. (Он также будет соответствовать только «id =» post »' ... не уверен, что это проблема.) Я также не уверен в regexpal (я использовал oXygen для тестирования). –

+0

Работает как очарование. Благодаря! – jbkkd

Смежные вопросы