mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
* 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:
parent
cd676ece36
commit
ecc9ca5a69
3 changed files with 28 additions and 10 deletions
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue