* Source/NSXMLNode.m (+elementWithName:stringValue:): Correct

recursive call.
Patch by Ivan Vučica <ivucica@gmail.com>
* Source/NSXMLElement.m: Add FIXME comments for name space
methods.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@34820 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
fredkiefer 2012-02-26 19:58:25 +00:00
parent c0585bf7b2
commit c9ed32af80
3 changed files with 28 additions and 10 deletions

View file

@ -1,3 +1,10 @@
2012-02-26 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSXMLNode.m (+elementWithName:stringValue:): Correct
recursive call.
Patch by Ivan Vučica <ivucica@gmail.com>
* Source/NSXMLElement.m: Add FIXME comments for name space methods.
2012-02-23 Fred Kiefer <FredKiefer@gmx.de> 2012-02-23 Fred Kiefer <FredKiefer@gmx.de>
* Source/NSXMLElement.m: Implement namespace methods. * Source/NSXMLElement.m: Implement namespace methods.

View file

@ -351,6 +351,7 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (NSArray*) namespaces - (NSArray*) namespaces
{ {
// FIXME: Should use xmlGetNsList()
NSMutableArray *result = nil; NSMutableArray *result = nil;
xmlNsPtr ns = MY_NODE->ns; xmlNsPtr ns = MY_NODE->ns;
@ -369,8 +370,8 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (NSXMLNode*) namespaceForPrefix: (NSString*)name - (NSXMLNode*) namespaceForPrefix: (NSString*)name
{ {
// FIXME: Should use xmlSearchNs()
xmlNsPtr ns = MY_NODE->ns; xmlNsPtr ns = MY_NODE->ns;
if (ns) if (ns)
{ {
const xmlChar *prefix = XMLSTRING(name); const xmlChar *prefix = XMLSTRING(name);
@ -401,6 +402,7 @@ extern void clearPrivatePointers(xmlNodePtr aNode);
- (NSString*) resolvePrefixForNamespaceURI: (NSString*)namespaceURI - (NSString*) resolvePrefixForNamespaceURI: (NSString*)namespaceURI
{ {
// FIXME Should use xmlSearchNsByHref()
xmlNsPtr ns = MY_NODE->ns; xmlNsPtr ns = MY_NODE->ns;
if (ns) if (ns)

View file

@ -160,6 +160,9 @@ BOOL isEqualNode(xmlNodePtr nodeA, xmlNodePtr nodeB)
BOOL isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB) BOOL isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB)
{ {
xmlNodePtr childA;
xmlNodePtr childB;
if (nodeA == nodeB) if (nodeA == nodeB)
{ {
return YES; return YES;
@ -175,17 +178,23 @@ BOOL isEqualTree(xmlNodePtr nodeA, xmlNodePtr nodeB)
return NO; return NO;
} }
if (!isEqualTree(nodeA->children, nodeB->children)) // Check children
childA = nodeA->children;
childB = nodeB->children;
while (isEqualTree(childA, childB))
{ {
return NO; if (childA == NULL)
}
if (!isEqualTree(nodeA->next, nodeB->next))
{ {
return NO;
}
return YES; return YES;
}
else
{
childA = childA->next;
childB = childB->next;
}
}
return NO;
} }
// Private methods to manage libxml pointers... // Private methods to manage libxml pointers...
@ -748,7 +757,7 @@ NSArray *execute_xpath(NSXMLNode *node,
{ {
NSXMLElement *e; NSXMLElement *e;
e = [self elementWithName: name stringValue: string]; e = [[NSXMLElement alloc] initWithName: name stringValue: string];
return e; return e;
} }