diff --git a/ChangeLog b/ChangeLog index 5867da6d9..cc36be790 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-03-08 Fred Kiefer + + * Source/NSXMLNode.m (+_objectForNode:): Add a few more libxml2 + node types. + 2012-03-07 Richard Frith-Macdonald * Source/GSStream.m: Attempt to fix logic for event handling of data diff --git a/Source/NSXMLNode.m b/Source/NSXMLNode.m index ebb3badb8..a7c21c6ab 100644 --- a/Source/NSXMLNode.m +++ b/Source/NSXMLNode.m @@ -234,10 +234,11 @@ isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB) Class cls; NSXMLNodeKind kind; xmlElementType type = node->type; - + switch (type) { case XML_DOCUMENT_NODE: + case XML_HTML_DOCUMENT_NODE: cls = [NSXMLDocument class]; kind = NSXMLDocumentKind; break; @@ -261,6 +262,34 @@ isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB) cls = [NSXMLNode class]; kind = NSXMLAttributeKind; break; + case XML_DTD_NODE: + cls = [NSXMLDTD class]; + kind = NSXMLDTDKind; + break; + case XML_CDATA_SECTION_NODE: + cls = [NSXMLNode class]; + kind = NSXMLTextKind; + break; + case XML_NAMESPACE_DECL: + cls = [NSXMLNode class]; + kind = NSXMLNamespaceKind; + break; + case XML_ELEMENT_DECL: + cls = [NSXMLNode class]; + kind = NSXMLElementDeclarationKind; + break; + case XML_ATTRIBUTE_DECL: + cls = [NSXMLNode class]; + kind = NSXMLAttributeDeclarationKind; + break; + case XML_ENTITY_DECL: + cls = [NSXMLNode class]; + kind = NSXMLEntityDeclarationKind; + break; + case XML_NOTATION_NODE: + cls = [NSXMLNode class]; + kind = NSXMLNotationDeclarationKind; + break; default: NSLog(@"ERROR: _objectForNode: called with a node of type %d", type); @@ -1358,7 +1387,9 @@ execute_xpath(NSXMLNode *xmlNode, NSString *xpath_exp, NSString *nmspaces) - (NSArray*) objectsForXQuery: (NSString*)xquery error: (NSError**)error { - return [self notImplemented: _cmd]; + return [self objectsForXQuery: xquery + constants: nil + error: error]; } @end