jeudi 2 mars 2017

cut html string by download web content in swift 3

i have link , i want use swift 3 to get string between two separated string , like this :

<div class=\"article_list_block\">\n\t\t<p>\t\t\t\t\t\n\t\t\t<h1> xxxxx </h1> 

where xxxxx duplicate many times in html code , how can extract this string xxxxx and put it in array in swift 3. i use this code but i can extract just one time and create array for 1 element not for all xxxxxin whole html output.

    if let url = URL(string: "http://ift.tt/2lxq98c") {

                let request = NSMutableURLRequest(url: url)

                let task = URLSession.shared.dataTask(with: request as URLRequest) {
                    data, response, error in

                    var message = ""



                    if error != nil {

                        print(error)

                    } else {

                        if let unwrappedData = data {



                            var dataString = NSString(data: unwrappedData, encoding: String.Encoding.utf8.rawValue)




 var stringSeparator = "<div class=\"article_list_block\">\n\t\t<p>\t\t\t\t\t\n\t\t\t<h1>"
                            var x = 1

                       repeat {

                             self.contentArray = (dataString?.components(separatedBy: stringSeparator))!
                            print("0=\(self.contentArray[0])")
                            print("11=\(self.contentArray[1])")

                                if self.contentArray.count > 1 {
                                    stringSeparator = "</h1>"
                                    self.TenderList = self.contentArray[1].components(separatedBy: stringSeparator)
                                    //print("1=\(self.TenderList[1])")

                                    if self.TenderList.count > 1 {

                                        message = self.TenderList[0]
                                       // print("3=\(self.TenderList[1])")
                                        dataString = self.TenderList[1] as NSString?
                                       // print("2=\(dataString)")
                                        //self.TenderList = [""]
                                        self.TenderList.append(message)


                                      //  print(message)
                                       // print("contenet array\(self.contentArray)")

                                    }
                                }
                            x += 1
                           // print("x=\(x)")

                        } while( x < 3 )
                    }

                    }

                    if message == "" {

                        message = "The weather there couldn't be found. Please try again."

                    }

                    DispatchQueue.main.sync(execute: {

                       // self.resultLabel.text = message

                    })

                }

                task.resume()
                self.tableView.reloadData()

            } else {

               // resultLabel.text = "The weather there couldn't be found. Please try again."

            }




Aucun commentaire:

Enregistrer un commentaire