http://bugs.winehq.org/show_bug.cgi?id=6856
------- Additional Comments From der.fabe@gmx.net 2007-02-05 18:58 ------- The namespace issue is not the only problem. For Xpath expressions with depth!=1 (e.g. "node1/node2" or "node1//node2") msxml's IXMLDOMNode::selectNodes method finds all matching Nodes directly below the current node i.e. matches where "node1" from the example is a direct child of the current node. I know of no way to implement that with libxml. xerxes might be able to do that, but it lacks C bindings. Also it would be a lot of work to port wine's msxml from libxml to xerxes. Another option would be to implement our own XPath parser, but that's a lot of work, too and feels a little like reinventing the wheel. So, I don't really have a solution for this problem.
Anyhow, even if you work around these two issues, civ isn't happy with builtin msxml. I think this is due to missing type information because schema validation is not implemented, but I'm not sure.