SwiftSoup безопасно работает с дочерними индексами, как Lodash's Get - PullRequest
0 голосов
/ 19 марта 2019

В моем Javascript я инициализировал Lodash

window.lodget = get;

, поэтому я могу делать такие вещи, как

header = lodget(div, 'children[0].children[1]') || lodget(div, 'children[3]')

Во время выполнения,расположение header на веб-сайте неизвестно, так что это экономит мне много времени, так как мне не нужно проверять каждый слой children и наличие объекта по указанным индексам.Если первый путь не существует, он занимает второй;просто.

Теперь мне нужно отойти от Javascript, поэтому я только начал использовать SwiftSoup для разбора HTML.Теперь, как я могу сделать что-то похожее на это?

Если путь не существует, SwiftSoup вылетает в приложении с (lldb) (аналогично доступу к массиву с большим индексом, чем его длина), но проверяя наличиекаждый путь взорвал бы код в 10 раз по сравнению с его размером, так как там было много «неизвестных».

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

...