Есть ли способ скопировать токенайзер HTML в Go? - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь токенизировать HTML метаданные, включая некоторые операции. У меня есть токенизатор tokenizer := html.NewTokenizer(htmlStream) для итерации по тегам.

Но для тега opg og:img может быть несколько изображений, и свойства, непосредственно следующие за предыдущим тегом og:img, являются свойствами этого один. Так, например, из opg

<meta property="og:image:width" content="300" />
<meta property="og:image:height" content="300" />
<meta property="og:image" content="http://example.com/rock2.jpg" />
<meta property="og:image" content="http://example.com/rock3.jpg" />
<meta property="og:image:height" content="1000" /> 

мне нужно сначала узнать следующее свойство, чтобы решить, запускать ли новый или добавить к существующему объекту изображения. Кажется, что нет никакой функции, подобной peek, мне приходилось сталкиваться с такими вещами, как два итератора в массиве, но Go сообщает об ошибках и пустых тегах, когда я запускал и использовал новый токенизатор imageTokenizer := html.NewTokenizer(htmlStream), Есть ли способ, которым я могу это сделать. TBH Я зашел слишком далеко в этом подходе без предварительного тестирования токенизатора. Но я также готов выслушать другие подходы по этому вопросу.

...