如何在sumo net文件* .net.xml中添加变量/实体

时间:2018-03-22 12:49:08

标签: xml entity sumo

您好我正在使用相扑来生成流量并试图找到一种方便地调整参数的方法。所以我想使用一个变量来替换net文件正文中的参数。从网上,我发现实体可能会有所帮助,但似乎我犯了一些错误。代码var_test.net.xml如下所示。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE net[
<!ENTITY pos "100.00">
]>

<net version="0.27" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/net_file.xsd">
    <location netOffset="0.00,0.00" convBoundary="0.00,0.00,&pos;,0.00" origBoundary="10000000000.00,10000000000.00,-10000000000.00,-10000000000.00" projParameter="!"/>

    <edge id="gneE0" from="gneJ0" to="gneJ1" priority="1">
        <lane id="gneE0_0" index="0" speed="13.89" length="&pos;" shape="0.00,-1.65 &pos;,-1.65"/>
    </edge>

    <junction id="gneJ0" type="dead_end" x="0.00" y="0.00" incLanes="" intLanes="" shape="0.00,-0.05 0.00,-3.25"/>
    <junction id="gneJ1" type="dead_end" x="&pos;" y="0.00" incLanes="gneE0_0" intLanes="" shape="&pos;,-3.25 100.00,-0.05"/>

</net>

在代码中,我试图生成一条长度为100米的道路,我想将其设置为实体。但是,使用netedit时

netedit -s var_test.net.xml

打开文件,它说:

Error: entity 'pos' not found
 In file 'var_test.net.xml'
 At line/column 8/66.

Error: entity 'pos' not found
 In file 'var_test.net.xml'
 At line/column 8/66.

Error: No nodes loaded.
Error: Failed to build network.

我是XML的新手,不知道这个的原因。有谁能告诉我如何纠正我的代码,如何在相扑的网络文件中使用变量或者我应该首先学习什么?非常感谢!!!

1 个答案:

答案 0 :(得分:0)

首先警告:&#34;这里是龙&#34;。强烈建议不要手动编辑SUMO网络。首选方法是使用https://docs.microsoft.com/en-us/ef/core/querying/related-data(手动编写/编写脚本,或由netedit或netconvert的普通导出生成),编辑生成的文件并通过netconvert传递它们,如下所示:

netedit -s var_test.net.xml --xml-validation.net always

但是,如果您真的坚持自己破解网络,那么您的XML是正确的,问题是,SUMO默认使用优化的解析器来处理不扩展实体的网络。如果启用XML验证,则会得到一个较慢的解析器,它按预期工作:

{{1}}