This allows the caller to pass in an NSDictionary specifying the mapping
from namespace prefix to namespace URL. Namespace prefixes specified in
the given XPath will then be resolved against that mapping.
This allows callers to find nodes using default namespaces, e.g.
<element xmlns='<schema URL>'>...</element>. The caller must specify
prefix=<schema URL> in namespaceMappings, and then can use prefix:element
in the XPath.
If namespaceMappings is nil, then the existing behavior is used
(parsing the namespaces from the document node). This works in the
situation where the namespaces are all named explicitly, and all on the
root node, but not in general.
This addresses upstream issue #19, the second half of issue #20.
The existing code uses doc->children, which is wrong in the case that the
document has a doctype or PI nodes at the start.
This fix is originally from upstream issue #20, by kgrigsby59.
This changeset re-applies the fix on top of the
nodesforxpath-namespacemappings branch (the two changes are in the same
area of code).