你的根元素<playlist>下有很多相同名字的子元素<player>那就需要给这些player定义一个不重复的属性来取他们 防止取错
例如:给player定义ID
<player id="1"><text>asd1</text></player>
<player id="2"><text>asd2</text></player>
<player id="3"><text>asd2</text></player>
var playerId:String = 1
var player:XMLList = lxxml.player.(@id == playerId)
trace(player.text)//结果为asd1
拼接xml格式报文。从页面表单提交和配置文件中读取出参数,或用实体类接收的页面传来的参数。建立map对象,用put()方法把参数添加进去。然后遍历map,将map转换成xml。
[java] view plain copy
StringBuffer soapResultData = new StringBuffer()
//xml声明
soapResultData.append("<?xml version=\"1.0\" encoding=\"GBK\"?><ROOT><MSG_HEAD>")
//请求头
soapResultData.append(requesttoxml(msgHead))
soapResultData.append("</MSG_HEAD><MSG_BODY>")
//请求体
soapResultData.append(requesttoxml(resmap))
soapResultData.append("</MSG_BODY></ROOT>")
[java] view plain copy
/**
* 将map转化为XML格式的字符串
* @param resmap
* @return
*/
ublic static String requesttoxml(Map<String, String>resmap){
StringBuffer soapResultData = new StringBuffer()
for(String key : resmap.keySet()){
soapResultData.append("<")
soapResultData.append(key)
soapResultData.append(">")
soapResultData.append(resmap.get(key))
soapResultData.append("</")
soapResultData.append(key)
soapResultData.append(">")
}
return soapResultData.toString()
将接收到的xml格式报文,转换成实体类。
一、 *** 作说明
在QoS测试中,经常要设置不同优先级的报文,来验证被测设备对于优先级的调度。所以,我们就要了解如何设置IPv6和IPv6报文中的DSCP(大部分使用DSCP值,也会用到TOS值)
这里我们使用测试接交换机,交换机转发测试仪发出的报文,我们在接收端口抓包,验证配置正确性。
二、 测试拓扑
拓扑说明
1、测试仪两个端口和DUT两个端口相连
2、测试P1端口发出流量,经过DUT转发后,从B端口发出,进入P2端口。
三、 测试思路
1、创建两个Port之间的流量,这里为了便捷就使用Raw流。
2、修改IPv4和IPv6报文中的DSCP值,在接收端口抓包查看DSCP字段是否符合设置预期
四、 测试步骤
1、 IPv4报文 DSCP 值设置
(1)占用端口
(2)创建流量,这里为了便捷,使用RAW流
(3)设置IPv4头部中的DSCP值。首先选在TOS或DSCP,这里我们以DSCP为例。
设置DSCP类型。这里有两个类型:CodePoint和Class Selector。
其中,Class Selector对应我们常说的AFxx
其中,CodePoint,对应我们常说的CSxx。这里根据客户要要求设定。
另外,点击QoS Edit按钮,这里可以看到DiffServ和ToS的设置,以及DiffServ下,CodePoint和Cass Selector的对应关系。
2、 IPv6报文的DSCP值设置
(1)设置RAW流
(2)将IPv4头删除,添加IPv6报文头
(3)可以看到,报文头里只有Traffic Class(十进制)字段,我们就要通过设置Traffic Class字段,来实现DSCP值的设置。
这里需要注意下,我们首先看下报文中的DSCP值。Traffic Class字段有8bits,其中前6bits是DSCP值,后2bits是ECN(默认00)
因此,我们在报文编辑时填的Traffic Class数值时包括ECN的。
(4)编辑Traffic Class字段
我们先找到DSCP值10进制的编码表,例如下面这张。因为后面还有两个bit的ECN值00。所以我们把10进制的DSCP值*4,就得到了10进制的Traffic Class值。
例如,我们这里使用AF43对应10进制38, 38*4=152。
(5)发送流量,接收端口抓包,显示DSCP值为AF43
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)