替换固定结构化XML中的值的最快方法

时间:2017-01-24 16:16:15

标签: xml fortran

我需要运行数百次迭代(或更多次)的模拟,从.xml文件中读取其参数。这个文件有大约83k行。

此模拟中的参数示例为:

  <ScalarVariable
  name = "nr_resources_init"
  valueReference = "2721"
  description = "Initial available non-recoverable resources"
  variability = "parameter" isDiscrete = "true"
  causality = "internal" isValueChangeable = "true"
  alias = "noAlias"
  classIndex = "1415" classType = "rPar"
  isProtected = "false" hideResult = "false"
  fileName = "[path to model file]" startLine = "4602" startColumn = "9" endLine = "4602" endColumn = "119" fileWritable = "true">
  <Real start="1000000000000.0" fixed="true" useNominal="false" unit="ton" />
  </ScalarVariable>

由于以下原因......:

  • 模拟使用可执行文件运行,该文件自动读取.xml的初始状态(参数)。
  • 从Fortran我需要搜索并替换参数(“nr_resources_init”)中的值(来自示例中的“Real”子节点的“1000000000000”),然后通过系统调用调用可执行文件。
  • .xml在模拟之前自动生成(仅一次),并且它将始终具有相同的结构。因此,我认为使用正则表达式进行此搜索和替换不会成为问题。

......我认为使用“XML重型库”将是一种矫枉过正,它可能不是最快的选择。因此,我尝试使用sed和perl但无法找到正确的正则表达式。

以编程方式从Fortran或使用系统调用将给定参数的值替换为给定新值的最佳/最快方法是什么?

0 个答案:

没有答案