2011-06-21 7 views
0

私はXMLを持っています。私はそれを解析するためにTouchXMLを使用しています。基本的には、検索は次のようになります。TouchXML XPathクエリのヘルプ

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

私はこれを行うと、それは文書内のすべての参照を返します。

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

私が何をしたいのかはLookupTypeが組成物に等しい玉葉すべての参照を取得することです(文字列比較)。

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

おかげで

答えて

0

のXPath //TestA:Lookup[TestA:LookupType='Composition']あなたがやりたいん:だからこれは私が試してみました、それはnullを返します何ですか?親要素が名前空間にある場合はその子もあまりにもあなたのパスの両方の要素に接頭辞が必要と思うので。

+0

ちょっとうまくいった!ありがとう。最後の質問:LookupではなくLookupNameを取得したいのですが、どうすればいいですか?現在、私はこれを試してみましたが、うまくいきません:@ "// TestA:Lookup [TestA:LookupType = 'Composition']/LookupName" – sumderungHAY

+0

要素がXPath式のネームスペースにある場合は、接頭辞要素名を修飾するには '' TestA:Lookup [TestA:LookupType = 'Composition']/TestA:LookupName'を試してください。 –