سؤال

هل هناك طريقة للحصول على ملف CXMLElement مرة أخرى عند استعلام XPath عن وثيقة؟ ال XCMLNode العنصر الذي تم إرجاعه بواسطة - (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error; لا يحتوي على وظائف السمات.

هل هناك طريقة إما للحصول على عنصر مباشرة أو تحويل العقدة إلى عنصر؟

شكرًا

هل كانت مفيدة؟

المحلول

يمكنك إلقاءها ، ولكن تأكد من التحقق من النوع أولاً:

for (CXMLNode *node in nodeArray)
{
    if ([node kind] == CXMLElementKind)
    {
        CXMLElement *element = (CXMLElement *)node;

        // do stuff with element
    }
}

نصائح أخرى

Afair Cxmlelement هي فئة فرعية من CXMlnode. إذا كنت متأكدًا من أن XPath سيعود CXMLElements ، فما عليك سوى إلقاء cxmlnode إلى cxmlelement. في حالة أخرى ، يجب عليك التحقق من نوع العقدة ثم يلقي.

من Documention touchxml:

NSArray *nodes = NULL;
//  searching for piglet nodes
nodes = [doc nodesForXPath:@"//piglet" error:nil];

for (CXMLElement *node in nodes) {
...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top