1

CXMLElementドキュメントをxpathでクエリするときに元に戻す方法はありますか? によって返されるXCMLNode項目に- (NSArray *)nodesForXPath:(NSString *)xpath error:(NSError **)error;は、属性関数が含まれていません。

要素を直接取得するか、ノードを要素に変換する方法はありますか?

ありがとう

4

2 に答える 2

4

キャストできますが、最初に型を確認してください。

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

        // do stuff with element
    }
}
于 2010-11-03T20:22:21.953 に答える
0

AFAIR CXMLElement は CXMLNode のサブクラスです。xpath が CXMLElements を返すことが確実な場合は、CXMLNode を CXMLElement にキャストします。それ以外の場合は、ノード タイプを確認してからキャストする必要があります。

touchXML ドキュメントから:

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

for (CXMLElement *node in nodes) {
...
}
于 2010-11-03T20:19:43.710 に答える