首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从字符串或字节数组GO创建XML解码器

从字符串或字节数组GO创建XML解码器
EN

Stack Overflow用户
提问于 2017-09-01 12:52:31
回答 1查看 3.1K关注 0票数 2

我的应用程序中有一个xml解码函数,我使用xml.NewDecoder(resp.Body)来解码我的xml。NewDecoder函数接收一个io.Reader。但问题是,在我来自服务器的响应中,我收到了我需要忽略的前230个字节,剩下的字节是我想要解码的用base64编码的xml。这里是响应体的一个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    --RandomCaracteres...
    Content-Type: application/xml; charset=UTF-8; name=response_xml

    <Response success="1"/>
    --RandomCaracteres...
    Content-Type: text/xml; name=report.xml
    Content-Transfer-Encoding: base64
    PE5leHBvc2VSZXBvcnQgdmVyc2lvbj0iMi4wIj4KPHNjYW5zPgo8c2NhbiBpZD0iNDYwMCIgbmFt......

我只需要读PE5leHBvc2VSZXBv..。数据。使用以下代码,我可以读取xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    bodyBytes, _ := ioutil.ReadAll(resp.Body)
    defer resp.Body.Close()
    data, err := base64.StdEncoding.DecodeString(string(bodyBytes)[230:])
    fmt.Println(data)

但是我不能调用xml.NewDecoder()函数,因为数据不是io.Reader类型。有什么方法从字符串中复制解码对象吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-01 12:58:24

是的,有

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
r := strings.NewReader(dataStr)

字节数组也是如此。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
r := bytes.NewReader(dataBytes)

或者,使用字节,您可以跳过ReaderNewDecoder,直接使用Unmarshal

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
err := xml.Unmarshal(dataBytes, &myobj)

或使用string,强制转换和使用Unmarshal

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
err := xml.Unmarshal([]byte(dataStr), &myobj)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46007827

复制
相关文章
Go解析xml,Go xml struct ,Go xml 转数组
项目中使用到Go,两天看文档,一周出产品,第一次体验Go来开发,虽然写起代码很舒服,但是遇到xml转换是真的麻烦,没有php开发快啊,哈哈。不过Go是真的值得学习。先看下xml转结构体。
高久峰
2023/06/18
6300
XML创建或改变某个新属性
通常情况下,xml都是和数据库一起使用。今天在修改bug的时候,发现需要新增几个属性。 翻了下w3c,找到setAttribute. 定义和用法: setAttribute() 方法创建或改变某个新属性。 语法:elementNode.setAttribute(name,value) 参数: name value 描述: name 必需,规定要设置的属性名;value 必需,规定要设置的属性值。 说明: 该方法把指定的属性设置为指定的值。如果不存在具有指定名称的属性,该方法将创建一个新属性。 例如:
Vicsh
2018/05/16
1K0
java字符串的字节数组_Java字节数组到字符串到字节数组
我正在尝试将byte []转换为字符串,将byte []的字符串表示形式转换为byte []的转换...我将byte []转换为要发送的字符串,然后我期望我的Web服务(用python编写)将数据直接回显给客户端。
用户7886150
2021/04/29
5.3K0
字节数组转化为字符串_数组字符串
如果用的是fastjson 则导包为 import com.alibaba.fastjson.JSONObject
全栈程序员站长
2022/11/16
1.2K0
字节数组转化为字符串_数组字符串
[日常] Go语言圣经-字节切片与字符串
1.一个字符串是一个不可改变的字节序列 2.文本字符串通常被解释为采用UTF8编码的Unicode码点(rune)序列 3.内置的len函数可以返回一个字符串中的字节数目 4.第i个字节并不一定是字符串的第i个字符,因为对于非ASCII字符的UTF8编码会要两个或多个字节 5.字符串操作基于原始字符串字节 6.字符串面值方式编写,只要将一系列字节序列包含在双引号内即可,解释字符串,其中的相关的转义字符将被替换;反引号括起来,支持换行,非解释字符串 7.每个符号都分配一个唯一的Unicode码点,Unicode码点对应Go语言中的rune整数类型 8.UTF8是一个将Unicode码点编码为字节序列的变长编码 9.变长的编码无法直接通过索引来访问第n个字符 10.将字符串看作是字节(byte)的切片(slice)来实现对其标准索引法的操作
唯一Chat
2019/09/10
8680
java:从sRGB字节流(byte[])创建BufferedImage
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51872134
10km
2019/05/25
1.3K0
Python 字符串与字节数组转换
整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: int('0x10', 16) ==> 16 类似的还有oct(), bin() 字符串转整数: 10进制字符串: int('10') ==> 10 16进制字符串: int('10', 16) ==> 16 16进制字符串: int('0x10', 16) ==> 16 字节串转整数: 转义为short型整数: struct.unpack('<hh', bytes(b'\x01\x00\
微软技术分享
2022/12/28
1.1K0
Go语言按字节截取字符串的方法
// 按字节截取字符串 utf-8不乱码 func SubstrByByte(str string, length int) string { bs := []byte(str)[:length] bl := 0 for i:=len(bs)-1; i>=0; i-- { switch { case bs[i] >= 0 && bs[i] <= 127: return string(bs[:i+1]) case
李海彬
2018/03/20
1.9K0
区块链开发之Go语言—字符串和字节
字符串与字节的关系 Go 代码使用 UTF-8 编码,字符串和字节之间的转换依据的是UTF-8编码。注意中文是3个字节对应一个中文的字符串。 下面将归类讲述负责操作字符串和字节的几个标准库 strings 包提供了很多操作字符串的简单函数,通常一般的字符串操作需求都可以在这个包中找到。 bytes 包提供了对应操作字节的函数。 strconv 包提供了基本数据类型和字符串之间的转换。这个包之所以存在,是因为在Go中,没有隐式类型转换。字符串类型和 int、float、bool 等类型之间的转换却没有这么简单
linxinzhe
2018/04/10
1.3K0
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/11/03
3.4K0
如何从xml文件创建R语言数据框dataframe
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/10/24
3.5K0
如何从xml文件创建R语言数据框dataframe
从这个XML文件中,我想创建一个具有ID,name 列的R数据框。请注意,name和ID应包含变量的所有级别。
拓端
2020/10/24
3.2K0
[PHP] xml转为数组函数
将xml数据转为php数组 , 函数备忘 function xml2array($element, $arr = array()) { if(is_string($el
唯一Chat
2021/03/04
5400
从列表中或数组中随机抽取固定数量的元素组成新的数组或列表
2:jQuery版本 那么jQuery中怎么随机选出固定数组数组[1, 2, 3, 4, 5, 6, 7, 8, 9]中的三个元素,并构造成新数组的?
王小婷
2018/08/02
6.1K0
深入理解字符串和字节数组转换
      前文中,论及字符串和字节数组的转换,虽然能够找到某个代码页,保证转换的可逆,但是在实际处理中,仍然还有一些细节问题需要注意.       最重要的,就是转换得到的字符串,每个字符的编码和原来的编码可能并不相同,以代码页437为例,127以下的,转换后的字符和转换前的一样,而后面的就完全不同了。下面是437代码页的转换字符和原来内码的对照表。 -             c     {维数:[256]} int[]               [0]   0     int           
用户1075292
2018/01/23
9210
go对xml操作
XMLName xml.Name `xml:"servers"` //这里好像是固定字段必须这么写
公众号-利志分享
2022/04/25
4470
Go xml文件处理
encoding/xml 包实现了一个简单的xml 1.0解析器,可以理解xml名称空间。
孤烟
2022/03/19
7190
C++ 代码 获取匹配的字符串数组或替换
C++ 代码 获取匹配的字符串数组或替换 #include <regex> #include <string> // 使用类 std::regex_iterator 来进行多次搜索. static std::string _strs = "... ..." ; std::regex _regex("<img [^>]+>"); std::cout << "sregex_iterator ====" << std::endl; auto words_begin =
用户1503405
2021/10/06
1.6K0
go 数组
2.数据类型必须相同,不能混用,int数组不能包含float 等,已验证 3.boolean 是false 4.数组越界是 panic 异常 5.数组是值类型,默认情况下是值拷贝,也就是说每次拷贝后是一个独立副本,数组间互不影响。 6.可以使用指针来实现引用传递
潇洒
2023/10/20
1260
Go 语言数组基础教程 - 数组的声明、初始化和使用方法
var array_name = [length]datatype{values} // 这里定义了长度
小万哥
2023/08/30
3590
Go 语言数组基础教程 - 数组的声明、初始化和使用方法

相似问题

c#从字节数组创建xml

40

如何从字符串创建字节(数组)?

12

何时在Go中使用[]字节或字符串?

34

从字节数组创建字符串

33

Go,从字节数组中提取天数

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文