如何访问lxml和Python中未解析的实体?

时间:2017-06-19 22:33:38

标签: python xml lxml

我有一个格式良好的XML,代码如下:

    <fxp-connector name="streaming" host="&fxvmnsrv.host;" port="&fxvmnsrv.port;" mode="INITIATOR">
        <message type="1" .../>
       ....
    </fxp-connector>
    .....

我正在解析它:

import lxml.etree as ET
parser = ET.XMLParser(resolve_entities=False)
tree = ET.parse(inCfgFileName, parser)
....
outFile = open(outCfgFileName, "w")
......
e = tree.findall('fxp-connector[@name="streaming"]')
.....
tree.write(outFile)

在该行的输出中:

&fxvmnsrv.host;&fxvmnsrv.port;<fxp-connector name="streaming" host="" port="" mode="INITIATOR">

...

print e[0]打印<message .../>标记 如何访问这些实体引用?我试了几件事,但到目前为止没有运气。

1 个答案:

答案 0 :(得分:0)

找到他们。它们被插入根目录,即与它前面的<fxp-connector>处于同一级别。

for i in range(20):
print i, root[i]

产生

9 &fxvmnsrv.host;
10 &fxvmnsrv.port;
11 <Element fxp-connector at 0xffffffff7b7386c8> #this is the <fxp-connector tag>