首页 > 其他分享 >[记]在rust中使用xml,xml的序列化与反序列化

[记]在rust中使用xml,xml的序列化与反序列化

时间:2023-12-28 11:33:42浏览次数:30  
标签:xml serde features quick 序列化 rust

在rust中有好几个xml库,但我个人比较推荐的是quick_xml库,这个库的序列化和反序列化使用体验比较好。

启用quick_xml的feature

quick-xml = { version = "0.31.0",features=["serde","serialize"] }
serde = {version="1.0",features=["derive"]}

qucik_mxl的宏体验

依靠强大的宏,quick_xml使用结构体和枚举即可实现xml结构的一一对应。
标签内属性使用宏进行标记

pub struct CalibrationData{
    #[serde(rename = "@xmlns:xsi")]
    xmlns:String,
    CalConfig:Vec<CalConfig>,
}
<CalibrationData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</CalibrationData>

标签:xml,serde,features,quick,序列化,rust
From: https://www.cnblogs.com/hardfood/p/17932339.html

相关文章

  • IM通讯协议专题学习(十):初识 Thrift 序列化协议
    本文由字节跳动技术团队杨晨曦分享,本文有修订和改动。1、引言本文将带你一起初步认识Thrift的序列化协议,包括Binary协议、Compact协议(类似于Protobuf)、JSON协议,希望能为你的通信协议格式选型带来参考。  技术交流:-移动端IM开发入门文章:《新手入门一篇就够:......
  • 短小精悍(4) - Rust操作系统随机数getrandom库介绍
    今天带来的是另一个“短小精悍”的库:getrandom。它的作用是从操作系统提供的随机数源获得一段随机数。用法getrandom的用法很简单,唯一需要了解的就是它内部的同名函数:pubfngetrandom(dest:&mut[u8])->Result<(),Error>它将会向dest中填充来自操作系统的随机数。示例:......
  • Rust爬取大A股票数据.rs
    externcratesimple_excel_writerasexcel;useexcel::*;fnmain()->Result<(),Box<dynstd::error::Error>>{  leturl:&str="http://94.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124040399874179311124_1685159655748&pn......
  • Rust error : usize 类型不能进行 - 操作
    return(-low-1asisize)asisize;cannotapplyunaryoperator-Rust编写程序时候usize类型进行-1运算时报的错误写了下BinarySearch,对于if判断修正为平衡版本,同时解决了取得的midVal已经获取其下标,不必等其缩小完边界。以下是第一种较差的实现方式。fnbinar......
  • 使用libxml2库修改XML文件内容
    /*//引入libxml2库头文件和相关函数库。#include<libxml/parser.h> ///usr/include/libxml2/libxml/parser.h#include<libxml/tree.h>#include<libxml/xmlmemory.h>*/staticvoidmodifyXml(Webs*wp){char*json_string=wp->input.servp;cJSON*cjson=......
  • Windows 安装 Rust 并设置镜像加速
    目录下载rustup-init.exe(Rust安装工具)使用镜像加速rustup安装安装Rust安装标准库源码使用镜像加速cargo包下载安装结果确认更新、卸载和文档查看参考文档下载rustup-init.exe(Rust安装工具)下载安装程序https://www.rust-lang.org/tools/install,我选的是64位:使用镜像加速rustu......
  • 37. 干货系列从零用Rust编写负载均衡及代理,负载均衡中try_files实现
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代理等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/......
  • rust call sqlite3 error: linking with `link.exe` failed: exit code: 1181
    rustcallsqlite3error:linkingwithlink.exefailed:exitcode:1181声明:本文禁止csdn.net及所有所有子网站转载。禁止以营利性为目的的转载。报错error:linkingwith`link.exe`failed:exitcode:1181......
  • Windows下使用rust调用SQLite3
    Windows下使用rust调用SQLite3声明:本文禁止csdn.net及所有所有子网站转载。禁止以营利性为目的的转载。userusqlite::{Connection,Result};#[derive(Debug)]structPerson{id:i32,name:String,data:Option<Vec<u8>>,}fnmain()->Result<()>{......
  • rust 过程宏
    简介Rust编程语言里面有两种宏系统,一种是声明宏(DeclarativeMacros),另一种为过程宏(ProceduralMacros)。声明宏和过程宏是两种基本上完全不一样的宏系统,编写的方式也完全不一致,使用方式除了函数式外也不一致。关于声明宏学习,Rust宏小册里面有比较详细的说明,这里不再啰嗦。而对于......