以XML格式更新参数值



我将参数存储在一个XML文件中。以下是该文件的示例。

<?xml version="1.0" encoding="UTF-8"?>
<root>
<terminal id="A">
<terminalCapacity>3</terminalCapacity>
<terminalMembers id="1">
<memberID>0001</memberID>
<memberCapacity>2</memberCapacity>
</terminalMembers>
</terminal>
<terminal id="B">
<terminalCapacity>4</terminalCapacity>
<terminalMembers id="1">
<memberID>0002</memberID>
<memberCapacity>1</memberCapacity>
</terminalMembers>
<terminalMembers id="2">
<memberID>0003</memberID>
<memberCapacity>3</memberCapacity>
</terminalMembers>
</terminal>
</root>

每个terminalID都与在我的NED文件中找到的一种类型的simpleModule相关联。其思想是在整个模拟运行过程中以编程方式更新这些值。当前的逻辑围绕着获取XML格式的当前参数并更新memberCapacity字段。

在Omnet cPar和cXMLElement文档中,我尝试使用par("moduleParameter").xmlValue()->getXML()函数,但这会将XML作为字符串返回。我也尝试过使用getAttribute()函数,但没有成功。

不要这样做。par("moduleParameter").xmlValue()将为您提供XML文档的内存中对象树,但这并不意味着要进行修改。您的XML文件似乎只是一个层次结构和模块,它们的参数可以准确地反映这一点。当您可以用INI文件参数镜像时,绝对没有理由重新发明轮子。

最新更新