首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TTCN中解析XML字符串

在TTCN中解析XML字符串
EN

Stack Overflow用户
提问于 2017-01-03 17:37:56
回答 1查看 138关注 0票数 0

我正在使用eclipse用TTCN-3编写一个测试用例。在其中一个测试用例中,我从模拟器获得了一个包含多个记录的XML字符串的响应,如下所示:

代码语言:javascript
复制
<Templates><Template><Id>1001</Id><Category>refill</Category><Description>Template description</Description><ApplicationId>AIR</ApplicationId><Name>Template name</Name><SchemaVersion>3.3.14</SchemaVersion></Template><Template><Id>1002</Id><Category>refill</Category><Description>Template Description 1</Description><ApplicationId>AIR</ApplicationId><Name>Template name</Name><SchemaVersion>3.3.14</SchemaVersion></Template></Templates>

现在,我需要解析这个xml字符串并从中获取模板对象,以便在测试用例中进一步使用它们。

模板对象定义如下:

代码语言:javascript
复制
public type record Template
{
    charstring id,
    charstring category,
    charstring description,
    charstring applicationId,
    charstring name,
    charstring schemaVersion
}
public type record of Template Templates;

我是TTCN的新手,所以非常感谢您的帮助。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-01-30 22:13:51

您提到了Eclipse,在这种情况下,它可以是思博伦的TTWorkbench专有解决方案,也可以是Eclipse(爱立信)的TTCN-3编译器和执行器的TITAN开源实现。在这里,我将以开源的TITAN为例。

Titan有用于XML的内部编解码器,解释为herehere。正如您在第二个示例中看到的:

代码语言:javascript
复制
external function enc_AccessControlPolicy(in AccessControlPolicy pdu) return octetstring
with { extension "prototype (convert) encode(XER:XER_EXTENDED)" }

external function dec_AccessControlPolicy(in octetstring stream) return AccessControlPolicy
with { extension "prototype (convert) decode(XER:XER_EXTENDED)" }

这会将XML转换为TTCN-3结构,反之亦然。

您还可以使用上述方法在C/C++中定义新函数并自己编写编解码器(如果您添加了一个包含'dec_AccessControlPolicy‘和'enc_AccessControlPolicy’作为函数的新文件)。这对于一些复杂的和(有时)不符合标准的协议很有用(参见MQTT、CoAP和Titan中的其他编解码器实现)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41440403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档