MoriaXML 文件单例读取

                
    /**
    * MoriaXML 文件解析
    * @文件拓展名 .moriaxml
    * @编码 UTF-8
    */
    object MoriaXML {
        /**
        * @author Moriafly
        * @email moriafly@163.com
        * @version 1.0.1
        * @since 2020/8/10 13:11
        * @param source .moriaxml 文件源数据 source data
        * @param single .moriaxml 文件要解析的单数据名 single data
        * @return String 解析出来的字符串
        */
    
        fun getSingleMoriaXML(source: String, single: String): String {
            val startStr = "<${single}>" // 构造开始标识
            val endStr = "" // 构造结束标识
            // 获取标识失败,抛出异常
            if (source.indexOf(startStr) == -1 || source.indexOf(endStr) == -1) {
                throw Exception("getSingleMoriaXML Error: Can not get the single: \"${single}\".")
            }
            val startIndex = source.indexOf(startStr) + startStr.length // 开始读取位置
            val endIndex = source.indexOf(endStr) // 结束读取位置
            return source.substring(startIndex, endIndex) // 返回内容
        }
    
        /**
        * @param source .moriaxml 文件源数据 source data
        * @param single .moriaxml 文件要解析的单数据名 single data
        * @param errorString .moriaxml 解析错误返回的数据
        */
        fun getSingleMoriaXML(source: String, single: String, errorString: String): String {
            val startStr = "<${single}>" // 构造开始标识
            val endStr = "" // 构造结束标识
            // 获取标识失败,返回 errorString
            if (source.indexOf(startStr) == -1 || source.indexOf(endStr) == -1) {
                return errorString
            }
            val startIndex = source.indexOf(startStr) + startStr.length // 开始读取位置
            val endIndex = source.indexOf(endStr) // 结束读取位置
            return source.substring(startIndex, endIndex) // 返回内容
        }
    }