2015-10-24 7 views
2

Я пытаюсь понять, как использовать функции XPath для поиска элементов, содержащих дроби, десятичное значение которых ниже определенного значения. Очевидно, что я мог бы просто получить все элементы и обработать их потом, но я хотел бы знать, можно ли это сделать непосредственно с XPath.XPath с плавающей запятой?

Предполагая, что у меня есть HTML ниже, я хотел бы вернуть элементы, десятичное значение которых меньше или равно 0,1, поэтому элемент, содержащий 1/10, будет возвращен только.

<html> 
    <body> 
    <div>1/8</div> 
    <div>1/10</div> 
    <div>1/5</div> 
    </body> 
</html> 

ответ

1

Это выражение XPath,

//div[ number(substring-before(., '/')) 
     div number(substring-after (., '/')) <= 0.1] 

подберет

<div>1/10</div> 

по запросу.

+0

Спасибо, что сработал, могу ли я спросить, что означает «div» в середине, я предполагаю, что это означает разделение, но я не вижу упоминания в документации - http://www.w3schools.com/xsl /xsl_functions.asp – chillydk147

+0

Исправить. По документации [*** real ***, W3C XML Path Language (XPath)] (http://www.w3.org/TR/xpath/): [*** Оператор div выполняет деление с плавающей запятой в соответствии с к IEEE 754. ***] (http://www.w3.org/TR/xpath/#numbers) – kjhughes

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