以 XML 格式更新参数值

Update parameter value in XML format

我将参数存储在 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 and cXMLElement 文档中,我尝试使用 par("moduleParameter").xmlValue()->getXML() 函数,但是这个 returns 和 XML 作为字符串。我也尝试使用 getAttribute() 函数,但没有成功。

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