Please understand that you need to supply a sample file if you expect people to help you. Simply obscure your private data or make up some replacement data.
I found this link reporting a similar problem and solution suggesting 2 different approaches. So I thought to share it with you, not sure if it will help.
Thanks for the hint but I have seen that post but it's about another problem.
There is something wrong with that Google XML file -or with my way to access it. When I grep a record in the xmllint shell, it returns some wild card instead of the node path:
$ xmllint --shell cts.xml
/ > grep Arthur
/*/*[16]/*[5] : tan 9 Arthur M.
/*/*[16]/gd:name/gd:fullName : tan 9 Arthur M.
/*/*[16]/gd:name/gd:givenName : ta- 6 Arthur
/ >
My understanding is that it should have returned a full path to the node. Something like:
/feed/entry/gd:name/gd:fullName
Could that be that the file is corrupt? A xmllint --debug doesn't return anything abnormal though.
But I could be on something:
xmllint --valid cts.xml
cts.xml:2: validity error : Validation failed: no DTD found !
tp://schemas.google.com/g/2005" gd:etag="W/"A0AFRHc4eit7I2A9WhNVEkU.""
^
But all other test files that work all right with xmllint generate the same error on validation...
which produces the following output from your supplied XML:
FULLNAME: Arthur M.
GIVENNAME: Arthur
FAMILYNAME: M.
FULLNAME: Eric D.
GIVENNAME: Eric
FAMILYNAME: D.
FULLNAME: Jack Ppppppp
GIVENNAME: Jack
FAMILYNAME: Ppppppp
Now I only have to take a deep breath and dive into XLS. It looks like black magic to me. It took me a couple of months to get use to CSS and now XLS...
XSLT is a basically declarative pattern-matching language with some functional language concepts. If you have not got experience of declarative languages, it may you a while to get your head around the concepts.
If you wish to learn XSLT, you should also study XPath at the same time as they are frequently used together.