В моем 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 уже содержит необязательные свойства?Я надеюсь на ответ, потому что я действительно застрял прямо сейчас.