2016-03-24 10 views
1

私は現在、特定のテキストが必要なhtmlファイルを持っており、Fuziをインストールしてhtmlを解析する手助けをしています。Fuziを使用して、特定のタグからテキストを取得swift

<pre class="lyric-body" onclick="location.href='SOME_URL_HERE';"> 
THE TEXT THAT I NEED TO GET IS IN HERE 
</pre> 

そして、私はHTMLを解析を開始するように設定している:

if let myString = String(data: data!, encoding: usedEncoding) { 
    do { 
     let doc = try HTMLDocument(string: HTML_FILE, encoding: NSUTF8StringEncoding) 

     for lyric in doc.xpath("//pre/@class") { 
       print(lyric) 
     } 

    } catch let error { 
     print(error) 
    } 
} else { 
    print("failed to decode data") 
} 

これは、現在印刷します:

を私はこのようなルックスからテキストを取得する必要がありhtmlファイルの一部
class="lyric-body" 

私はFuziのドキュメントを読んでみましたが、私が試してみたようなものは何も私が必要とするテキストに似たものを返します。

答えて

2

XPathが正しくありません。classという属性が抽出されています。 <pre>タグ内のテキストを抽出する場合は、代わりに"//pre[@class='lyric-body']"を使用する必要があります。私は願っています

for link in doc.css(".lyric-body") { 
    // print stringValue or anything you need  
} 

:あなたは内部のテキストを直接取得したい場合はFuziは、あなたがクラス"lyric-body"を持つ要素を取得するには、あまりにも、次のコードを使用することができますCSS-セレクターのサポートを持っているとして、あなたは"//pre[@class='lyric-body']\text()"

を使用することができますこれはあなたを助ける

関連する問題