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

问题

不是解析本地 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()
                }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,678评论 1 45
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,138评论 1 32
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • 相许会再续,会相欠,欠今生,还来世。人事少许情,又留人间多少爱… 过来人知过来事,便不会执迷不悟,...
    刘晓车阅读 381评论 0 2
  • 吃饭 五(4)班段佳怡 指导老师王英丹 “大胃王”老爸曾说过这样一句话:...
    蓝海王英丹老师阅读 353评论 0 0