LoginSignup
2
1

More than 5 years have passed since last update.

Wikipediaから関連するキーワードを取得してきて配列にするSwiftコード

Posted at

Wikipediaからキーワードを取得してきて、配列にするSwiftコードを記述しました。

import Foundation

class GetWordArrayFromWikipedia: NSObject , XMLParserDelegate{

    var endFlag = false
    var WordArray:Array<String> = []
    func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {

        if(elementName == "pl"){
            WordArray.append(attributeDict["title"]!)
        }
    }

    func getWordArrayFromStringJp(seedWord:String) -> Array<String>
    {
        WordArray = []

        let url = NSURL(string: "https://ja.wikipedia.org/w/api.php?format=xml&action=query&prop=links&titles=" + seedWord.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)! + "&&pllimit=1000")
        self.endFlag = true
        let task = URLSession.shared.dataTask(with: url! as URL, completionHandler: {data, response, error in
            let parser : XMLParser = XMLParser(data: data!)
            parser.delegate = self
            parser.parse()
            self.endFlag = false
        })

        task.resume()

        while self.endFlag == true{
            usleep(100)
        }



        return WordArray
    }

    func parserDidEndDocument(_ parser: XMLParser) {

    }

}

これを駆動するコードは以下の通り

        var obj = GetWordArrayFromWikipedia();
        var array = obj.getWordArrayFromStringJp(seedWord: "機械学習");
        print(array)
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1