При использовании XPath для поиска переменной берется только часть этой переменной - PullRequest
2 голосов
/ 13 февраля 2009

Я новичок в XPath. Я пишу код, чтобы получить все 3-значные числа со страницы. Они не постоянны, варьируются между 105, 515 и 320. Я хочу, чтобы двое могли разбить эти числа на две отдельные части ...

Я бы хотел иметь возможность получить первую цифру в одном выражении X-path а также вторые две цифры во втором выражении X-Path

В ходе моего исследования я обнаружил, что вы не можете маркировать «нулевым значением», но есть ли способ сделать это?

Спасибо

1 Ответ

1 голос
/ 13 февраля 2009

Мне кажется, что на самом деле вопрос о возможных способах разбить трехзначное число на две строки , первая из которых содержит первую цифру, а вторая - оставшиеся две цифры.

Вот одно из возможных решений :

Следующее выражение XPath при оценке создает строку, содержащую первую цифру числа $ vNum (в реальном выражении XPath замените $ vNum на выражение XPath, которое создает это значение):

  substring($vNum, 1, 1)

Следующее выражение XPath при оценке создает строку, содержащую последние две цифры 3-значного числа $ vNum (в реальном выражении XPath замените $ vNum на выражение XPath, которое создает это значение) :

  substring($vNum, 2)

В случае, если мы не уверены в количестве цифр $ vNum имеет, при вычислении следующего выражения XPath получается строка, содержащая две цифры, которые следуют сразу за первой цифрой 3 + цифра $ vNum (в реальном выражении XPath замените $ vNum на выражение XPath, которое создает это значение):

  substring($vNum, 2, 2)

И, наконец, , если мы снова не знаем точное количество цифр, но хотим получить последние две из них, следующее выражение XPath при оценке выдает строку, содержащую две цифры в конце 2+ -значное число $ vNum (в фактическом выражении XPath замените $ vNum выражением XPath, которое создает это значение):

 substring($vNum, string-length($vNum) - 1)
...