How do the sites like Iplay4e work? (I don't have much experience with them.)
Is it possible to get the bulk of the info from the compendium, and just use the sheet to get the player's numbers?
It's been some time since i've used iplay4e, but I recall them linking to the compendium. If i recall, the compendium originally had an API webservice you could interface, but I remember it being a pain to use, and then they made it (mostly) go away (licensing and data scrape abuse i think). Looking at some CB xml, each item of importance includes a link to the compendium, so that must be what iplay4e uses.
However, to be useful, the data returned from the compendium needs to be xml, and you would need an xml schema for that as well. Then you could work some xsl:fo magic to get it formatted however you wanted. My DDI is lapsed, so i can't check, but i believe they return the data already xsl parsed into a web friendly format. Sure, you could parse
that, but it's much more difficult since one doesn't know the rules that went into the xsl formatting, you'd be guessing at your parsing and the output format can always cahnge on you, breaking everything.
Even if you were able to access the raw power/item description xml, it has a history of inconsistencies, which can jack up formatting. While attempting to do exactly what you are wanting several months back, with the CB xml (and as further evidence of rolling thier own serialization without a schema), one of the tag attributes completely changed case between versions, but only for certain values. The change in case broke what I had and forced me to add a duct tape and spaghetti work around for it. I filed a bug report, but it was ultra low priority. I eventually gave up the project sometime in august or so to work on my own CB/MB in my spare time.