* 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:
Fred Kiefer 2012-02-26 19:58:25 +00:00
parent cd676ece36
commit ecc9ca5a69
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>
* Source/NSXMLElement.m: Implement namespace methods.

View file

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

View file

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