【发布时间】:2020-08-05 12:05:27
【问题描述】:
我正在尝试解析 XML 格式的网络流量矩阵文件。它包括源(源)节点和目标节点之间的流量。我所拥有的是一个序列流量矩阵,这意味着流量随着时间的推移而演变,并由时间序列 0 到时间序列 N 表示。例如,我附上了以下文件,其中包含 XML 流量矩阵,其中有两个时间序列(即 seq 0 和 1),每个时间序列有两个起点(即 20 和 21)和一组目的地(即 32、33、34、35、28、29、30、31)。浮点数是以 Mbps 为单位的流量。
我正在寻找的是解析这样的矩阵并找到每个 [origin--destination] 在一段时间内的流量。
例如:我有兴趣仅从文件中获取以下信息,
Time seq"0"
Origin -- Destination -- Traffic volume
20 -- 32 -- 0.278971163226
.
.
.
20 - - 31 -- 0
21 -- 32 -- 0.0720389596699
.
.
.
21 - - 31 -- 0.646495362713
Time seq"1"
20 -- 32 -- 0.348919367445
.
.
.
20 - - 31 -- 0.348919367445
21 -- 32 -- 0.264369876118
.
.
.
21 - - 31 -- 0
这是 XML 文件。
-<traffic-matrix type="sequence">
-<time seq="0">
<property name="volume_unit" type="string">Mbps</property>
-<origin id="20" id.type="int">
<destination id="32" id.type="int">0.278971163226</destination>
<destination id="33" id.type="int">0.21534822478</destination>
<destination id="34" id.type="int">0.417878716061</destination>
<destination id="35" id.type="int">0.126812437403</destination>
<destination id="28" id.type="int">0.0</destination>
<destination id="29" id.type="int">0.377649042951</destination>
<destination id="30" id.type="int">0.230012161609</destination>
<destination id="31" id.type="int">0.0</destination>
</origin>
-<origin id="21" id.type="int">
<destination id="32" id.type="int">0.0720389596699</destination>
<destination id="33" id.type="int">0.0194404241696</destination>
<destination id="34" id.type="int">0.416078923017</destination>
<destination id="35" id.type="int">0.271277529292</destination>
<destination id="28" id.type="int">0.0219082425921</destination>
<destination id="29" id.type="int">0.0</destination>
<destination id="30" id.type="int">0.0645726634169</destination>
<destination id="31" id.type="int">0.646495362713</destination>
</origin>
</time>
-<time seq="1">
<property name="volume_unit" type="string">Mbps</property>
-<origin id="20" id.type="int">
<destination id="32"id.type="int">0.348919367445</destination>
<destination id="33" id.type="int">0.0</destination>
<destination id="34" id.type="int">0.0</destination>
<destination id="35" id.type="int">0.0</destination>
<destination id="28" id.type="int">0.0</destination>
<destination id="29" id.type="int">0.11926219607</destination>
<destination id="30" id.type="int">0.0</destination>
<destination id="31" id.type="int">0.128091658298</destination>
</origin>
-<origin id="21" id.type="int">
<destination id="32" id.type="int">0.264369876118</destination>
<destination id="33" id.type="int">0.0</destination>
<destination id="34" id.type="int">0.136801239629</destination>
<destination id="35" id.type="int">0.172101959022</destination>
<destination id="28" id.type="int">0.289540759798</destination>
<destination id="29" id.type="int">0.0</destination>
<destination id="30" id.type="int">0.519869498363</destination>
<destination id="31" id.type="int">0.0</destination>
</origin>
</time>
</traffic-matrix>
【问题讨论】:
-
问题被标记为“python”。你试过什么?有什么问题?
-
我正在尝试用 Python 解决问题,我尝试了 xml.etree 但它没有按预期工作。
标签: python xml nested xml-parsing