Запрос XPath, чтобы получить только элементы перед '' в каждой строке - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь получить некоторые данные веб-сайта.Теперь я использую запрос:

//div[@class = 'TimeStamp']
Result:
2019-03-02 5:50:46
2019-03-02 5:08:52
2019-03-02 4:09:54
2019-03-02 1:52:43
2019-03-02 0:55:49
2019-03-02 0:11:04
2019-03-01 23:34:04
2019-03-01 7:01:14
2019-03-01 6:23:31
2019-03-01 5:41:01

Единственное, что я на самом деле хочу, это все даты:

2019-03-02
2019-03-02
etc

Я попытался выполнить это, выбрав каждую строку отдельно, а затем используя подстроку-перед и после попытки объединить их все вместе, как это.

concat(
    substring-before(
        (//div[@class = 'TimeStamp'])[1], ' '), 
    ' ', 
    substring-before(
        (//div[@class = 'TimeStamp'])[2], ' ')
)

Result:
2019-03-02 2019-03-02

Это не совсем соответствует моей цели - иметь каждую дату в новой строке.Кроме того, это должно произойти для n разных строк, и тогда мой метод действительно не оптимален.

Знаете ли вы, как я могу изменить это соответственно?

I 'Я не уверен, если это имеет значение, но я работаю в электронной таблице Google

1 Ответ

0 голосов
/ 03 марта 2019

используйте INDEX() формулу для обрезки ненужного, например:

=INDEX(IMPORTXML("URL", "//div[@class = 'TimeStamp']") , , 1)

или, может быть:

=ARRAYFORMULA(INDEX(SPLIT(IMPORTXML("URL", "//div[@class = 'TimeStamp']"), " ") , , 1))

=ARRAYFORMULA(TEXT(TO_DATE(INDEX(SPLIT(IMPORTXML(
 "https://"&C13&".op.gg/summoner/userName="&B13; 
 "//div[@class = 'TimeStamp']"); " "); ; 1));
 "yyyy-mm-dd"))

0

...