测试几个xml的问题

使用sql server的时候,免不了与xml的参数打交道,xml大多数时候都给我们的程序带来方便,但是也有些时候会有变量赋值不通过的时候。(当然罗,如果你本身xml都通不过 xml spy 之类软件的检查的话那就不是这方面的范围啦~)

今天分享的例子非常简单,就测试几个例子

DECLARE @x XML  

--1
SELECT @x =
‘<a>1</a>‘
--2
SELECT @x =
‘<?xml version="1.0" encoding="utf-8"?>
<a>1</a>
‘
--3
SELECT @x =
N‘<?xml version="1.0" encoding="utf-8"?>
<a>1</a>
‘
--4
SELECT @x =
‘<?xml version="1.0" encoding="utf-8"?>
<a>一个人</a>
‘
--5
SELECT @x =
‘<?xml version="1.0" encoding="GBK"?>
<a>单身狗汪</a>
‘

例子1 :

我们平常见到最多的例子,编译通过无压力。变量赋值通过,随后查询,解析,随你的便~

例子2:

编译也是通过的,貌似这个是最容易引起误会的地方,我之前一直以为sql server 里面的赋值是不支持带

<?xml version="1.0" encoding="utf-8"?>

这种头部的 ,所以平时跟coder说如果出现这种错误,把头部去掉就好了(确实会好,只是原因搞错了(⊙﹏⊙)b)。其实本身xml 类型是支持的,只是我们调用存储过程或者语句里面的参数赋值的时候应用的场景问题而已。sql server表示这锅我不背

例子3:

这个例子编译就有问题了,编译器就抛出

消息 9402,级别 16,状态 1,第 8 行
XML 分析: 行 1,字符 38,无法切换编码

然而例子3和例子2 的差别就是 例子3 的赋值使用了 unicode 的编码方式而例子2并没有这样干,所以例子3 瞬间就跪了╮(╯_╰)╭。所以我们平时发现的数据库传参报错是因为使用了这种方式进行,所以我就一直被忽悠了_(:з」∠)_。所以并不是不支持,只是我们的调用方式有问题

例子4:

消息 9420,级别 16,状态 1,第 9 行
XML 分析: 行 2,字符 5,非法的 xml 字符

咦~又报错啦~这次是非法xml 字符,看起来就是编码是utf-8 的这种不支持中文咯。所以有时候这些细节不注意就真是……/(ㄒoㄒ)/~~

例子5:

编译顺利通过,这次将里面的编码换成GBK编码,就可以支持中文啦。当然编译也是完全没问题罗。

补充另外一个例子

SELECT @x =
‘<?xml version="1.0" encoding="GBK"?>
<a>繁体字 龍 _(:з」∠)_</a>

也是ok的,一些繁体字在GBK的字库里面也是可以支持,一般也不一定需要纠结这个问题。除非一些特殊符号,就难说了呵呵哒

最后,encoding="utf-8" 和 encoding="UTF-8" 是等价的,在这里并没有区分大小写。注意是在这里……

今天就分享了这个小例子~如果有什么不对,肯定指正

时间: 2024-11-08 18:18:05

测试几个xml的问题的相关文章

LR 测试http协议xml格式数据接口

Action() { lr_start_transaction("T1"); web_custom_request("xxxxHTTPRequest", "URL=http://xxxx", "Method=POST", "Resource=0", "RecContentType=text/xml", "Referer=", "Mode=HTML"

selenium测试框架使用xml作为对象库

之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locator对象 不能够实现Locator对象重名 文件比较大,读写速度没有xml快 所以,重新写了使用dom4j操作xml,使用xml管理Locator对象,能够有效解决以上问题 首先,定义Locator文件 <?xml version="1.0" encoding="UTF-8&

12个强大的Web服务测试工具

在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种类型的web服务——基于互联网协议,REST和SOAP推动数据和信息的通讯. 由于这些web服务暴露于网络并且分布于不同的网络,所以它们很容易受到风险和安全威胁,从而影响基于它们的进程.因此,web服务或API测试非常有必要,可以确保它们执行正确并正确地响应查询. 市场上有不少商业和开源的测试工具可

DOM解析XML

DOM的文档驱动 处理DOM的时候,我们需要读入整个的XML文档,然后在内存中创建DOM树,生成 DOM树上的每个Node对象 优点是:可以对XML文档进行增删改查的复杂操作,可以随时按照节点间的关系访问数据 缺点: 受内存容量限制,不能处理大的文档,由于没有索引机制,处理效率较低 DOM(文档对象模型),为XML文档的解析定义了一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,然后代码就可以使用DOM接口来 操组整个树结构,其他点如下: 优点:整个文档树都在内存当中,便于操作:支持删

Google Test测试框架分析

Google Test测试框架分析 一.简介 Google Test是由Google主导的一个开源的C++自动化测试框架,简称GTest.GTest基于xUnit单元测试体系,和CppUint类似,可以看作是JUnit.PyUnit等对C++的移植. 下图是GTest测试框架的测试过程,表示的是GTest的两种测试方式. 下面将使用一个极其简单的例子表示xUnit测试的主要过程.如对Hummer的CTXString类的成员方法GetLength进行测试.详见下面GTest代码和注释说明. //

DBUnit数据库测试

DBUnit数据库测试: DBUnit是一个基于junit扩展的数据库测试框架.它提供了大量的类对与数据库相关的操作进行了抽象和封装.它通过使用用户自定义的数据集以及相关操作使数据库处于一种可知的状态,从而使得测试自动化.可重复和相对独立.虽然不用dbunit也可以达到这种目的,但是我们必须为此付出代价(编写大量代码,测试及维护),既然有了这么优秀的开源框架,我们又何必再造轮子. 普通的测试数据库的方法不仅较为麻烦,而且在对数据库测试完后会残留数据[学Java,到凯哥学堂kaige123.com

安全测试指南

测试方法 1.Web应用安全测试 1.1. Web应用安全测试概述 Web应用安全测试只侧重于评估Web应用的安全性.这个过程包括主动分析应用程序的所有弱点.技术缺陷和漏洞.任何被发现的安全问题连同影响评估.缓解建议或者技术方案一起提交给系统所有者. 1.2. 什么是OWASP测试方法 测试模型 测试人员:执行测试活动的人 工具和方法:本测试指南项目的核心 应用:黑盒测试的对象 测试阶段 阶段1. 被动模式: 阶段2.  主动模式: 2.信息收集测试 2.1 搜索引擎信息收集 2.2 Web服务

配置文件:mainfest.xml

AndroidManifest.xml 是每个android程序中必须的文件. 它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置. 除了能声明程序中的Activities, ContentProviders, Services,和Intent Receivers,还能指permissions和instrumentation(安全控制和测试)定定permissions和instrumentat

Maven单元测试报告及测试覆盖率

 对junit单元测试的报告:类似这样的结果 ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.cn.qin.actionTest.UserActionTest sdffsdfsdf Tests run: 1, Failures: 0, Errors: 0, Skipped: 0,