2011-08-06 46 views
0

我想使用Objective-C從這個HTML文件中提取鏈接。Xpath查詢問題使用Objective C

<html> 
<head> 
    <base href='http://example.com/' /> 
    <title>Example website</title> 
</head> 
<body> 
    <div id='images'> 
    <a href='image1.html'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a> 
    <a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a> 
    <a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a> 
    <a href='image4.html'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a> 
    <a href='image5.html'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a> 
    </div> 
</body> 
</html> 

這裏是XPath查詢:

//a[contains(@href, "image")]/@href 

但這裏的問題是,它在引號中的錯誤查詢圍繞圖像的文字!

Error

回答

1

由於XPath表達式是由雙引號字符分隔,不能使用這些字符在它的內部。你必須切換到單引號代替:

//a[contains(@href, 'image')]/@href 
+0

我試了你的兩個查詢!它現在運行沒有錯誤,但它不返回結果,它返回null! –

2

你必須逃脫雙引號來使用它們引用字符串內:

@"//a[contains(@href,\"image\")]/@href" 

或者使用單引號,如果XPath的支持那個:

@"//a[contains(@href,'image')]/@href" 
+0

我試過你的兩個查詢!它現在運行沒有錯誤,但它不返回結果,它返回null! –

+0

如何?它說(空)嗎?我不太瞭解XPath來驗證您的查詢。 – jtbandes