美文网首页
Android 读取本地Xml文件,并转换成String

Android 读取本地Xml文件,并转换成String

作者: 南窗云 | 来源:发表于2019-04-09 16:22 被阅读0次

    问题

    不是解析本地 xml 文件,
    而是要将 xml 文件中的所有内容(包含格式,标签等),直接转换成 String。

    与前端H5页面交互时, iOS 在请求远程 xml 文件耗时太长(有时需要4~5s),所以采用本地下载,然后传给前端的方式。

    前端在加载时,需要内容格式保持不变,所以需要将 xml 文件内容 转换成 String

    解决

    其实就是本地读取文件流,存储成 String ,传给前端就解决了。和解析xml无关。

        /**
         *  xml 转换 String ,并回传结果
         */
        private fun xml2String(data: List<LibraryXmlEntity>?, bookName: String) {
            if (data != null && data.isNotEmpty()) {
                val jsonPages = JSONObject()
                for (item in data) {
                    val xmlPath = item?.fullPath
                    /**
                     * 读取 xml 文件,转换成 String
                     */
                    try {
                        val input = FileInputStream(File(xmlPath))
                        val length = input.available()
                        val buffer = ByteArray(length)
                        input.read(buffer)
                        xmlString = String(buffer)
                    } catch (e: Exception) {
                        callBack?.error()
                    }
                    jsonPages["${item.pageName}"] = xmlString
                }
    
                buildJson(bookName, jsonPages?.toString())
            }
        }
    

    核心代码

                   /**
                     * 读取 xml 文件,转换成 String
                     */
                    try {
                        val input = FileInputStream(File(xmlPath))
                        val length = input.available()
                        val buffer = ByteArray(length)
                        input.read(buffer)
                        xmlString = String(buffer)
                    } catch (e: Exception) {
                        callBack?.error()
                    }
    

    相关文章

      网友评论

          本文标题:Android 读取本地Xml文件,并转换成String

          本文链接:https://www.haomeiwen.com/subject/clciiqtx.html