mirror of
https://github.com/gnustep/libs-base.git
synced 2025-06-03 10:00:51 +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
c0585bf7b2
commit
c9ed32af80
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>
|
2012-02-23 Fred Kiefer <FredKiefer@gmx.de>
|
||||||
|
|
||||||
* Source/NSXMLElement.m: Implement namespace methods.
|
* Source/NSXMLElement.m: Implement namespace methods.
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue