I found a site full of examples to create knots in latex and it's quite a pain to paint them. They look nice, though.
You basically paint them via xy and then place *"holes"* in the parts where you want to make a crossing. Here is an example:
\xy
(-3.5,3.5)*{}="LEFTTOP";
(3.5,-3.5)*{}="RIGHTBOTTOM";
(3.5,3.5)*{}="RIGHTTOP";
(-3.5,-3.5)*{}="LEFTBOTTOM";
"LEFTTOP";"RIGHTBOTTOM" **\dir{-}; \POS?(.5)*{\hole}="HOLE";
"RIGHTTOP";"HOLE" **\dir{-};
"HOLE";"LEFTBOTTOM" **\dir{-};
(0,0)*[gray]\xycircle(5,5){-};
\endxy