j should start from 1 and has to be incremented as j+=2 after every iteration. This is because when you get the child nodes of each CD node, there are 13 childnodes. They are CD , Title , Text in Title and so on for other elements in CD.
when you say getChildNodes it gets the text nodes or the text content as one of the child nodes. Thats why you get 6 extra childnodes when you say getLength() i.e. it shows 13 instead of 6.
Take a look at the JavaDocs for org.w3c.dom.Node - the base class for all DOM components. There is a lovely table there that everybody should get familiar with showing what values each type of Node has for "nodeName" and "nodeValue"
A Node of Text type has the name "#text"
So - your code that has the println.... getNodeName() is doing what is expected.
Bill
I found some pretty shells, some sea glass and this lovely tiny ad: