htmlquery icon indicating copy to clipboard operation
htmlquery copied to clipboard

How check an object exist or not

Open Eghbalii opened this issue 4 years ago • 3 comments

I have problem with this example code: htmlquery.Find(doc, //tbody/tr//td/div[1]/@title) and get this error: invalid memory address or nil pointer dereference.... which is true, but I want to manage it to not stop the process and just ignore and pass through it. or before check for find be sure that is exist. any solution?

Eghbalii avatar Apr 28 '20 08:04 Eghbalii

What is version of your htmlquery and xpath package? //tbody/tr//td/div[1]/@title expression won't panic an error even not found any matching node by the expression. I guess your variable doc is nil. or list your example code to test.

zhengchun avatar Apr 28 '20 08:04 zhengchun

I try to parse some pages.someone are completely ok but some of them haven't div tag in td and that's where I want to solve it. actually i remove [0] and check the length of result. but I interested to know if there is another way. thanks for your quick answer and this great package.

Eghbalii avatar Apr 28 '20 09:04 Eghbalii

Try this method: QueryAll, It will return error if they got an error. https://godoc.org/github.com/antchfx/htmlquery#QueryAll

But your example is strange, htmlquery won't throw nil pointer dereference error event no matching node, like you talked. //tbody/tr//td/div[1]/@title was passed on my local test.

zhengchun avatar Apr 28 '20 10:04 zhengchun