We as a company are providing automation testing services. Our approach is to use Xpath as last priority i.e when no other option is available like ClassName, ID, LinkText, CSS etc. Here we can directly use "LinkText" and above can be make functional like using the below syntax.
WebElement link = driver.findElement(By.linkText("Dados Pessoais"));
link.click();
Also like if you want to use the Xpath only then very first xpath example you share is correct. Don't know why it is not working, you can try by adding some wait for elements to load properly. Also you can use below mentioned Xpaths(using full value).
WebElement link = driver.findElement(By.xpath("//div//a[@href='http://wwwh4.tiri........./principal.aspx']"));
link.click();
WebElement link = driver.findElement(By.xpath("//div//a[Contains(@href,'/principal.aspx')]"));
link.click();
WebElement link = driver.findElement(By.xpath("//*[contains(@href,'/principal.aspx')]"));
link.click();