html - 使用 Swift 4 将 HTML 数据转换为 JSON 到字符串
问题描述
我正在尝试将 html 数据解码为简单的字符串,但我得到了所有 html 语法以及我正在使用 alamofire 获取方法链接 html 数据 http://laorotava.municipiointeligente.es/webservices/getNewsAndroid.php?type=audioguides1_es
任何帮助将不胜感激
我已经尝试了堆栈溢出的所有代码和扩展,但无法获得正确的结果
let urlString = "http://laorotava.municipiointeligente.es/webservices/getNewsAndroid.php?type=audioguides1_es"
Alamofire.request(urlString).response { response in
if let data = response.data{
let str = data.html2AttributedString
print(str)
}
}
我得到 String 和 html 语法
我想要这个文本
Te damos la bienvenida a La Orotava, el pueblo con 市长 desnivel de España。Abarca desde las playas del Rincón, a nivel del mar, hasta los 3718 metros del pico Teide, el punto más alto de España, cuya última erupción fue en 1798. Se cree que el nombre Orotava deriva de la palabra Arautápala, con el que denominaban a este territorio los antiguos aborígenes guanches。Tras la conquista, fue declarada Villa por el rey Felipe IV en 1648。正常 y sus contenidos 儿子不同。Si dispones de tiempo, te recomendamos que hagas las dos rutas por separado para disfrutar de rincones, leyendas y secretos que La Orotava te ofrece。A lo largo del recorrido encontrarás, incrustadas en el suelo, placas circlees de metal dorado。Cada placa indica el número de pista en el color de la ruta a la que pertenece。Cuando te encuentres frente a estas placas, pulsa el número de pista 通讯员。Si no dispones del tiempo suficiente, te recomendamos que elijas sólo una ruta。Pregunta al personal de la Oficina Municipal de Turismo, te atenderán encantados y te ayudarán a elegir una de ellas en función de tus intereses。También tienes a tu disposición folletos y otros materiales en la oficina para ayudarte en esta decisión。Ten en cuenta que La Orotava está llena de calles pendientes con subidas y bajadas muy pronunciadas。Si eliges la ruta de La Orotava Legendaria, o Ruta Verde, te encontrarás un recorrido con menos desnivel。波尔多拉多,la Ruta de La Orotava Secreta o Ruta Azul ofrece a los más aventureros vistas panorámicas únicas desde las mayores alturas a las que llega la visita。Te recomendamos realizar las rutas en horario de oficina para que tengas la oportunidad de encontrar abiertos el mayor número de espacios posible。Las iglesias suelen estar abiertas en horario de culto。Recuerda que tienes a tu disposición un botón de pausa y otro de repetición de los últimos 10 segundos en el reproductor, para hacerte más cómodo el recorrido。Cualquiera de las dos rutas está llena de sorpresas y rincones maravillosos。Adelante, pulsa la ruta de tu elección y adentrémonos juntos en este paseo por La Orotava。Te recomendamos realizar las rutas en horario de oficina para que tengas la oportunidad de encontrar abiertos el mayor número de espacios posible。Las iglesias suelen estar abiertas en horario de culto。Recuerda que tienes a tu disposición un botón de pausa y otro de repetición de los últimos 10 segundos en el reproductor, para hacerte más cómodo el recorrido。Cualquiera de las dos rutas está llena de sorpresas y rincones maravillosos。Adelante, pulsa la ruta de tu elección y adentrémonos juntos en este paseo por La Orotava。Te recomendamos realizar las rutas en horario de oficina para que tengas la oportunidad de encontrar abiertos el mayor número de espacios posible。Las iglesias suelen estar abiertas en horario de culto。Recuerda que tienes a tu disposición un botón de pausa y otro de repetición de los últimos 10 segundos en el reproductor, para hacerte más cómodo el recorrido。Cualquiera de las dos rutas está llena de sorpresas y rincones maravillosos。Adelante, pulsa la ruta de tu elección y adentrémonos juntos en este paseo por La Orotava。Recuerda que tienes a tu disposición un botón de pausa y otro de repetición de los últimos 10 segundos en el reproductor, para hacerte más cómodo el recorrido。Cualquiera de las dos rutas está llena de sorpresas y rincones maravillosos。Adelante, pulsa la ruta de tu elección y adentrémonos juntos en este paseo por La Orotava。Recuerda que tienes a tu disposición un botón de pausa y otro de repetición de los últimos 10 segundos en el reproductor, para hacerte más cómodo el recorrido。Cualquiera de las dos rutas está llena de sorpresas y rincones maravillosos。Adelante, pulsa la ruta de tu elección y adentrémonos juntos en este paseo por La Orotava。
解决方案
你的答案在这里
extension String{
var htmlToAttributedString: NSAttributedString? {
guard let data = data(using: .utf8) else { return NSAttributedString() }
do {
return try NSAttributedString(data: data, options: [.documentType: NSAttributedString.DocumentType.html, .characterEncoding:String.Encoding.utf8.rawValue], documentAttributes: nil)
} catch {
return NSAttributedString()
}
}
var htmlToString: String {
return htmlToAttributedString?.string ?? ""
}
}
API 调用
let urlString = "http://laorotava.municipiointeligente.es/webservices/getNewsAndroid.php?type=audioguides1_es"
Alamofire.request(urlString, method: .get, parameters: nil).responseJSON { response in
do {
if let jsonDict = try JSONSerialization.jsonObject(with: (response.data as Data?)!, options: []) as? [String:AnyObject]{
if let body = jsonDict["body"] as? String{
print(body.htmlToString) // Your output is Here
}
}
} catch _ {
print("Exception!")
}
}
输出:
推荐阅读
- javascript - 如何仅在桌面上检测 Safari 浏览器?
- ios - 带有 Objective C 的 Firebase 推送通知在 ios 11.4.1 中不起作用
- javascript - JDZOOM jquery函数.getsize
- reactjs - Formik + yup 不显示错误
- java - 什么是 ServiceLoader,它是如何使用的?
- json - 在 PowerShell 2.0 中编辑 JSON 数据
- mongodb - 聚合 3 个集合后,mongoDB 计数不同的对象
- angular - 使用 Angular 6 在 index.html 中定义 base-href
- python - 如何获取列中的特定值 - 熊猫数据框
- reactjs - (RuntimeError) `module` 未在 Guardian 管道中设置。如何解决这个问题?