For the first one, if you inspect the portion of the statement "driver.findElement(By.id("address")).getText()" what are you getting? You may have some white space or something at the top. Is there another element on the page with id='address' which you could be getting instead?
On the second one, I think you are making the same mistake I did while starting up with Xpath. 'By.xpath("//div[@id='content2']//a"' does not exist. Looking at your example, it is more something like //div/div/ul/font/li/a (I may be missing a few too at a quick glance!) If you want it to find the ''a'' element you'll need to give some instructions to have it go deeper in the chain (you can do some wild carding).
Depending on whose page this is, I will also suggest you look into using an approach like //div[contains(@id,"text")] as opposed to a straight equals that way if the id is augmented or rendered differently on another browser like with spaces it will still work. Also helps if you get into some complex tags you can just specify enough to match what you are looking for.
I used this
site as a basis to build an XPathTest of my own to explore XPath syntax deeper. If you have not seen it, review the
xpath tutorial at w3schools. I have used this almost exclusively as my reference for what can be done.