【问题标题】:TouchXML XPath query helpTouchXML XPath 查询帮助
【发布时间】:2011-06-21 10:41:27
【问题描述】:

我有一个xml,我正在使用TouchXML 来解析它。基本上,查找看起来像这样:

                    <Lookup>
                    <LookupID>201150103538705</LookupID>
                    <LookupName  />
                    <LookupType>Category</LookupType>
                    <VendorID>10</VendorID>
                    </Lookup>

当我这样做时,它会返回文档中的所有查找:

NSArray *lookups = [[xmlDoc rootElement] nodesForXPath:@"//TestA:Lookup"
                                    namespaceMappings:mappings 
                                                error:nil];

我想要做的是获取所有 LookupType 等于 Composition(字符串比较)的查找。所以这就是我尝试过的,它返回 null:

NSArray *lookups = [[xmlDoc rootElement] nodesForXPath:@"//TestA:Lookup[LookupType=\"Composition\"]" 
                                    namespaceMappings:mappings 
                                                error:nil];

谢谢

【问题讨论】:

    标签: objective-c xml cocoa-touch xpath touchxml


    【解决方案1】:

    XPath //TestA:Lookup[TestA:LookupType='Composition'] 是否符合您的要求?如果父元素在命名空间中,那么它的子元素也是如此,所以我认为您需要在路径中的两个元素上添加前缀。

    【讨论】:

    • 嘿,成功了!谢谢。最后一个问题:如果我想获得 LookupName 而不是 Lookup,我该怎么做?目前我试过这个但它不起作用:@"//TestA:Lookup[TestA:LookupType='Composition']/LookupName"
    • 如果元素在命名空间中,那么在您的 XPath 表达式中,您需要使用前缀来限定元素名称,因此请尝试 "//TestA:Lookup[TestA:LookupType='Composition']/TestA:LookupName
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2011-07-19
    • 2011-04-28
    • 2011-02-01
    相关资源
    最近更新 更多