2011-08-06 7 views
0

Objective-Cを使用してこのHTMLファイルからリンクを抽出したいとします。ここObjective Cを使用したXpathクエリの問題

<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

関連する問題