DOORS中给定一个Module的绝对路径,列出它下面的所有Object

继我的上一篇博客,在得到DOORS的整个目录树结构以后,项目(Project)和文件夹(Folder)的下一层即是模块(Module),我们已经可以得到Module的绝对路径,那么下一步我们可以利用这个绝对路径把它下面对应的所有Object按层次显示出来(分为Heading和Text),最后拼接成XML字符串的形式返回。
主要思路和得到目录树的思路类似,只不过DXL已经给我们提供了一个可以直接得到一级Object的for循环(for object in top Module do…),然后对一级Object进行遍历即可。
代码如下:


string str = ""

//对一级Object进行遍历
void scanObject(Object o)
{

    Object obj
    for obj in o do
    {
        if (null obj) continue
        string head = obj."Object Heading"

        //此object是Heading
        if(!null head)
        {

            str = str "<object type=\"heading\" value=\""head"\">\n"

            //递归遍历
            scanObject(obj)
            str = str "</object>\n"
        }
        //此object是Text
        else
        {
            string st = obj."Object Text"
            str = str "<object type=\"text\" value=\""st"\"/>\n"

        }

    }

}



string getModuleReq(string modulePath)
{

    Module m = read(modulePath)

    //获得Module中的所有一级Object
    Object o
    for o in top m do
    {

        //一级可能是Text吗?
        /*string sh = o."Object Heading"

        str = str "<object type=\"heading\" value=\""sh"\">\n"
        scanObject(o)
        str = str "</object>\n"*/

        //判断第一级是Heading还是Text
        if (null o) continue
        string head = o."Object Heading"

        //此object是Heading
        if(!null head)
        {

            str = str "<object type=\"heading\" value=\""head"\">\n"

            scanObject(o)
            str = str "</object>\n"
        }
        //此object是Text
        else
        {
            string st = o."Object Text"
            str = str "<object type=\"text\" value=\""st"\"/>\n"

        }

    }

    return str
}


//测试代码
string s = getModuleReq("/Test/功能需求")
print s "\n"
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值