XML格式单引号和双引号拼接问题

前言:在开发的时候遇到一个问题,一个xml格式的请求数据其中一个字段拼接的是json格式的数据,json数据里面的双引号导致xml格式错误,导致服务端解析错误。

错误请求代码

<Request T="101" T1="1" C="0" Version="8.1.20160817001" UserName="yzc" PassWord="1" Type="0" MobileType="HUAWEI VNS-AL00" Imei="862268034454116" AndroidVersion="6.0" SIMCardInfo="{"netWorkType":"0","phoneType":"1","dataState":"0","simState":"1","subScriberId":"null"}" SDCardSize="10.4GB" SDCardAvailSize="3.1GB" />

有经验的人看到这个请求应该就会发现错误的地方

SIMCardInfo="{"netWorkType":"0","phoneType":"1","dataState":"0","simState":"1","subScriberId":"null"}"

字段内部的双引号会引起xml解析错误,正常情况下xml根据双引号的位置只能解析SIMCardInfo="{",导致后面的数据没有正确的双引号标识解析错误

我们既要保证json内部数据正确,还要保证整个xml请求数据正确,所以特殊情况就要特殊对待

解决方法

1、如果内容中有单引号,就用双引号括起来,如果内容中有双引号,就用单引号括起来。

<example content1="内容有单引号'用双引号括起来" content2='内容有双引号"用单引号括起来' />

所以按照这种方法,上述请求可以转换为这样

<Request T="101" T1="1" C="0" Version="8.1.20160817001" UserName="yzc" PassWord="1" Type="0" MobileType="HUAWEI VNS-AL00" Imei="862268034454116" AndroidVersion="6.0" SIMCardInfo='{"netWorkType":"0","phoneType":"1","dataState":"0","simState":"1","subScriberId":"null"}' SDCardSize="10.4GB" SDCardAvailSize="3.1GB" />

2、使用转义字符替换

<Request T="101" T1="1" C="0" Version="8.1.20160817001" UserName="yzc" PassWord="1" Type="0" MobileType="HUAWEI VNS-AL00" Imei="862268034454116" AndroidVersion="6.0" SIMCardInfo="{"netWorkType":"0","phoneType":"1","dataState":"0","simState":"1","subScriberId":"null","networkCountryIso":""}" SDCardSize="10.4GB" SDCardAvailSize="3.1GB"/>

我们在代码编写的时候,经常需要拼接带有双引号字符串,我们也可以使用“\”转义

"{\"simOperator\":\"" + simOperator + "\",\"netWorkType\":\"" + netWorkType + "\",\"phoneType\":\"" + phoneType + "\",\"dataState\":\"" + dataState + "\",\"simState\":\"" + simState+ "\",\"subScriberId\":\"" + subScriberId + "\",\"networkCountryIso\":\"" + networkCountryIso + "\"}"
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,084评论 19 139
  • JSON JSON和XML都是需要解析的 JSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据...
    JonesCxy阅读 5,894评论 2 10
  • 1. XML总结 1.1. XML简介 XML : 可扩展的标记语言。(和HTML非常类似的) 可扩展的。 自定义...
    Ethan_Walker阅读 8,482评论 0 12
  • 最近做项目需要播放语音,第一种情况是下载到本地进行播放,第二种情况是进行在线播放,在进行播放操作的时候,两种情况都...
    CharlesAn阅读 11,562评论 1 0
  • 1.单一职责原则 定义单一职责原则(SRP:Single responsibility principle)又称单...
    贾里阅读 2,607评论 1 1

友情链接更多精彩内容